/* ===== Akhyayika 3D book component (all selectors prefixed nb-) ===== */
:root{--nb-pw:380px;--nb-ph:528px;--nb-red:#a3141f;--nb-red2:#7d0c15;--nb-gold:#e7c36b;--nb-paper:#fffaf0;--nb-ink:#3a2314;--nb-saffron:#a94712;--nb-dark:#762b08;--nb-border:#ead8bc}

/* ---- stage ---- */
.nb-stage{position:relative;width:100%;margin-top:26px;height:calc(var(--nb-ph) + 70px);display:flex;align-items:center;justify-content:center;overflow:visible}
.nb-layer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.nb-layer[hidden]{display:none}

/* ---- closed 3D book (landing / homepage teaser) ---- */
.nb-cb-wrap{perspective:1800px;display:flex;flex-direction:column;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;background:none;padding:0;font:inherit;color:inherit}
.nb-cb{position:relative;width:var(--nb-pw);height:var(--nb-ph);transform-style:preserve-3d;transform:rotateY(-26deg) rotateX(3deg);transition:transform .9s cubic-bezier(.5,0,.2,1);animation:nb-float 5.5s ease-in-out infinite}
.nb-cb-wrap:hover .nb-cb{transform:rotateY(-18deg) rotateX(2deg)}
.nb-cb.nb-opening{animation:none;transform:rotateY(0) rotateX(0) scale(1.03)}
@keyframes nb-float{0%,100%{translate:0 0}50%{translate:0 -14px}}
.nb-cb .nb-f{position:absolute;backface-visibility:hidden}
.nb-cb-front{inset:0;border-radius:3px 8px 8px 3px}
.nb-cb-back{inset:0;transform:translateZ(calc(var(--nb-t,34px) * -1));background:var(--nb-red2);border-radius:3px 8px 8px 3px}
.nb-cb-pages{top:2.2%;bottom:2.2%;left:100%;width:var(--nb-t,34px);transform-origin:left center;transform:rotateY(90deg);
  background:repeating-linear-gradient(90deg,#fffdf6 0,#fffdf6 2px,#e9dfc7 2px,#e9dfc7 3px),#fffdf6;box-shadow:inset 0 0 12px rgba(0,0,0,.18)}
.nb-cb-spine{top:0;bottom:0;left:0;width:var(--nb-t,34px);transform-origin:left center;transform:rotateY(-90deg) translateX(-100%);background:linear-gradient(90deg,#6c0911,#a3141f 45%,#7d0c15)}
.nb-cb-shadow{position:absolute;left:50%;bottom:-34px;width:78%;height:34px;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(60,15,10,.38),transparent 70%);filter:blur(5px);animation:nb-shadow 5.5s ease-in-out infinite;pointer-events:none}
@keyframes nb-shadow{0%,100%{transform:translateX(-50%) scale(1);opacity:1}50%{transform:translateX(-50%) scale(.88);opacity:.7}}
.nb-cb-hint{margin-top:52px;color:var(--nb-dark);font-weight:700;font-size:17px;letter-spacing:.2px;transition:opacity .4s;text-align:center}
.nb-cb-hint small{display:block;font-weight:500;color:#8a6a55;margin-top:2px;font-size:14px}
.nb-cb-hint.nb-fade{opacity:0}

/* ---- cover artwork (used on the closed book and on the reader cover leaf) ---- */
.nb-cover{position:relative;width:100%;height:100%;overflow:hidden;color:var(--nb-gold);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:7% 9% 8%;box-sizing:border-box;
  font-family:"Tiro Devanagari Marathi","Noto Serif Devanagari","Noto Sans Devanagari",serif;
  background:radial-gradient(120% 90% at 30% 20%,#c4202c 0%,#a3141f 45%,#76090f 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),inset 3px 0 6px rgba(0,0,0,.35),inset -2px 0 3px rgba(255,255,255,.1)}
.nb-cover::before{content:"";position:absolute;inset:3.2%;border:1.5px solid rgba(231,195,107,.75);border-radius:2px;pointer-events:none}
.nb-cover::after{content:"";position:absolute;inset:4.6%;border:1px solid rgba(231,195,107,.4);pointer-events:none}
.nb-cover::selection{background:transparent}
.nb-cover .nb-cv-top{font-family:"Noto Sans Devanagari",sans-serif;font-size:calc(var(--nb-pw) / 34);letter-spacing:.14em;font-weight:600;opacity:.92;margin-top:2%}
.nb-cover .nb-cv-logo{width:34%;aspect-ratio:1;border-radius:50%;background:rgba(255,246,222,.96);padding:3%;box-shadow:0 0 0 3px rgba(231,195,107,.7),0 8px 22px rgba(0,0,0,.4);object-fit:contain}
.nb-cover .nb-cv-title{font-size:calc(var(--nb-pw) / 9.2);line-height:1.28;font-weight:400;margin:0;text-shadow:0 2px 6px rgba(0,0,0,.45)}
.nb-cover .nb-cv-title b{display:block;font-size:1.22em;font-weight:400;color:#fff1c6}
.nb-cover .nb-cv-orn{width:56%;height:1px;background:linear-gradient(90deg,transparent,var(--nb-gold),transparent);margin:3% auto}
.nb-cover .nb-cv-sub{font-family:"Noto Sans Devanagari",sans-serif;font-size:calc(var(--nb-pw) / 26);line-height:1.5;opacity:.95;margin:0}
.nb-cover .nb-cv-mid{display:flex;flex-direction:column;align-items:center;gap:3%;width:100%}
.nb-cover .nb-sheen{position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 32%,rgba(255,255,255,0) 70%,rgba(255,255,255,.08) 100%);pointer-events:none}

/* ---- reader book ---- */
.nb-book{position:relative;width:calc(var(--nb-pw) * 2);height:var(--nb-ph);perspective:2600px;transition:transform .9s cubic-bezier(.5,0,.2,1);-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.nb-book.nb-single{width:var(--nb-pw)}
.nb-book.nb-state-closed{transform:translateX(-25%)}
.nb-book.nb-state-end{transform:translateX(25%)}
.nb-book.nb-single.nb-state-closed,.nb-book.nb-single.nb-state-end{transform:none}
.nb-book.nb-noanim,.nb-book.nb-noanim *{transition:none !important;animation:none !important}
.nb-leaf{position:absolute;top:0;left:50%;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;transition:transform .95s cubic-bezier(.6,.03,.3,1)}
.nb-single .nb-leaf{left:0;width:100%}
.nb-leaf.nb-flipped{transform:rotateY(-180deg)}
.nb-single .nb-leaf.nb-flipped{transform:rotateY(-105deg);opacity:0;pointer-events:none;transition:transform .8s cubic-bezier(.6,.03,.3,1),opacity .35s .35s}
.nb-single .nb-leaf:not(.nb-flipped){transition:transform .8s cubic-bezier(.6,.03,.3,1),opacity .2s}
.nb-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;box-sizing:border-box;background:var(--nb-paper);color:var(--nb-ink)}
.nb-face.nb-back{transform:rotateY(180deg)}
.nb-face.nb-r{border-radius:0 6px 6px 0;background:linear-gradient(90deg,rgba(60,30,10,.2) 0,rgba(60,30,10,.07) 3%,rgba(60,30,10,0) 9%),var(--nb-paper)}
.nb-face.nb-l{border-radius:6px 0 0 6px;background:linear-gradient(270deg,rgba(60,30,10,.2) 0,rgba(60,30,10,.07) 3%,rgba(60,30,10,0) 9%),var(--nb-paper)}
.nb-single .nb-face{border-radius:4px 6px 6px 4px;background:linear-gradient(90deg,rgba(60,30,10,.2) 0,rgba(60,30,10,.06) 3%,rgba(60,30,10,0) 8%),var(--nb-paper)}
.nb-single .nb-face.nb-back{background:#f4ead6}
/* shading while a page turns */
.nb-face::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(90deg,rgba(0,0,0,.35),rgba(0,0,0,0) 70%)}
.nb-face.nb-back::after{background:linear-gradient(270deg,rgba(0,0,0,.35),rgba(0,0,0,0) 70%)}
.nb-leaf.nb-turning .nb-face::after{animation:nb-shade .95s ease-in-out}
@keyframes nb-shade{0%{opacity:0}45%{opacity:.85}100%{opacity:0}}
.nb-leaf.nb-turning{filter:drop-shadow(0 6px 14px rgba(40,15,5,.28))}

/* hardcover faces */
.nb-leaf.nb-cover-leaf{top:-6px;height:calc(100% + 12px);width:calc(50% + 6px)}
.nb-single .nb-leaf.nb-cover-leaf{width:calc(100% + 6px);left:0}
.nb-cover-leaf .nb-face{background:var(--nb-red);border-radius:3px 8px 8px 3px;overflow:hidden}
.nb-cover-leaf .nb-face.nb-back{background:linear-gradient(270deg,rgba(0,0,0,.3),rgba(0,0,0,0) 12%),#8c6a3a;border-radius:8px 3px 3px 8px}
.nb-endpaper{position:absolute;inset:8px 6px 8px 8px;background:var(--nb-paper);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10%;border-radius:2px;font-family:"Noto Sans Devanagari",sans-serif;color:var(--nb-dark);gap:8px;font-size:calc(var(--nb-pw)/27);line-height:1.6}
.nb-endpaper img{width:30%;opacity:.9}
.nb-backcover{position:absolute;top:-6px;left:50%;width:calc(50% + 6px);height:calc(100% + 12px);background:var(--nb-red2);border-radius:3px 8px 8px 3px;box-shadow:0 18px 40px rgba(60,15,10,.35);z-index:0}
.nb-single .nb-backcover{display:none}
.nb-under{position:absolute;top:3px;height:calc(100% - 6px);width:50%;background:var(--nb-paper);border-radius:2px;z-index:0;transition:opacity .4s}
.nb-under.nb-ur{left:50%;box-shadow:2px 1px 0 #efe5cf,4px 2px 0 #e2d5b8,6px 3px 0 #d3c4a2}
.nb-under.nb-ul{left:0;box-shadow:-2px 1px 0 #efe5cf,-4px 2px 0 #e2d5b8,-6px 3px 0 #d3c4a2}
.nb-single .nb-under{display:none}
.nb-book-shadow{position:absolute;left:3%;right:3%;bottom:-26px;height:30px;background:radial-gradient(ellipse at center,rgba(60,15,10,.35),transparent 70%);filter:blur(6px);pointer-events:none;z-index:0}

/* click zones for turning pages */
.nb-zone{position:absolute;top:0;bottom:0;width:13%;z-index:9999;cursor:pointer;border:0;background:transparent;padding:0}
.nb-zone.nb-zl{left:0}.nb-zone.nb-zr{right:0}
.nb-zone::after{content:"";position:absolute;inset:0;opacity:0;transition:opacity .25s}
.nb-zone.nb-zr::after{background:linear-gradient(270deg,rgba(169,71,18,.18),transparent)}
.nb-zone.nb-zl::after{background:linear-gradient(90deg,rgba(169,71,18,.18),transparent)}
.nb-zone:hover::after,.nb-zone:focus-visible::after{opacity:1}
.nb-zone[hidden]{display:none}

/* ---- page content ---- */
.nb-pgc{position:absolute;inset:0;display:flex;flex-direction:column;padding:8% 9% 6%;box-sizing:border-box;font-family:"Noto Serif Devanagari","Noto Sans Devanagari",serif;font-size:max(12px,calc(var(--nb-pw) / 24.5));line-height:1.65}
.nb-l .nb-pgc{padding-right:11%}.nb-r .nb-pgc{padding-left:11%}
.nb-pg-head{display:flex;justify-content:space-between;align-items:center;font-size:.72em;color:#9a7b62;min-height:1.6em;font-family:"Noto Sans Devanagari",sans-serif}
.nb-chip{display:inline-block;padding:.1em .75em;border-radius:99px;background:#fbe9c9;color:var(--nb-dark);font-weight:700;border:1px solid #efd6a6}
.nb-chip.nb-c-community{background:#e6f1e4;border-color:#c9dfc4;color:#285a22}
.nb-chip.nb-c-original{background:#f8dcd8;border-color:#ecbab3;color:#7d0c15}
.nb-pg-link{flex:1;min-height:0;display:flex;flex-direction:column;color:inherit;text-decoration:none;margin-top:3%;border-radius:6px;transition:background .25s}
.nb-pg-link:hover,.nb-pg-link:focus-visible{background:rgba(233,196,106,.14);outline:none}
.nb-pg-link h3{margin:0 0 .25em;font-family:"Tiro Devanagari Marathi","Noto Serif Devanagari",serif;font-weight:400;font-size:1.55em;line-height:1.3;color:var(--nb-dark);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nb-by{font-size:.78em;color:#8a6a55;font-family:"Noto Sans Devanagari",sans-serif;margin-bottom:.5em}
.nb-orn{height:1px;background:linear-gradient(90deg,#d9b66a,transparent);margin:.3em 0 .7em;width:60%}
.nb-pg-img{width:100%;max-height:30%;object-fit:cover;border-radius:4px;margin-bottom:.6em;border:1px solid var(--nb-border)}
.nb-ex{flex:1;min-height:0;overflow:hidden;margin:0;text-align:left;-webkit-mask-image:linear-gradient(#000 78%,transparent);mask-image:linear-gradient(#000 78%,transparent)}
.nb-more{margin-top:.5em;font-family:"Noto Sans Devanagari",sans-serif;font-size:.8em;font-weight:700;color:var(--nb-saffron);display:inline-flex;align-items:center;gap:.4em}
.nb-pg-link:hover .nb-more{text-decoration:underline}
.nb-pg-foot{text-align:center;font-size:.78em;color:#9a7b62;margin-top:.4em;font-family:"Noto Sans Devanagari",sans-serif}
.nb-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.6em}
.nb-center h2{font-family:"Tiro Devanagari Marathi","Noto Serif Devanagari",serif;font-weight:400;color:var(--nb-dark);font-size:1.75em;margin:0;line-height:1.35}
.nb-center p{margin:0;color:#6d625b;font-size:.9em}
.nb-center img{width:26%;opacity:.92}
.nb-toc{flex:1;min-height:0;list-style:none;margin:.6em 0 0;padding:0;overflow:hidden}
.nb-toc li{border-bottom:1px dotted #d9c4a2}
.nb-toc button{all:unset;box-sizing:border-box;width:100%;display:flex;gap:.5em;justify-content:space-between;padding:.45em .2em;cursor:pointer;font-size:.9em;line-height:1.4}
.nb-toc button:hover,.nb-toc button:focus-visible{background:rgba(233,196,106,.2);color:var(--nb-dark)}
.nb-toc .nb-t{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.nb-toc .nb-n{flex:none;color:var(--nb-saffron);font-weight:700;font-family:"Noto Sans Devanagari",sans-serif}
.nb-pg-h2{font-family:"Tiro Devanagari Marathi","Noto Serif Devanagari",serif;font-weight:400;color:var(--nb-dark);text-align:center;margin:.4em 0 0;font-size:1.35em}
.nb-empty{color:#8a6a55;text-align:center;margin:auto;font-size:.95em;padding:0 6%}
.nb-allink{display:block;text-align:center;font-family:"Noto Sans Devanagari",sans-serif;font-size:.8em;font-weight:700;color:var(--nb-saffron);margin-top:.4em}

/* ---- toolbar ---- */
.nb-toolbar{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:6px auto 0;max-width:720px;padding:0 12px}
.nb-tb-btn{font:inherit;font-weight:700;padding:10px 18px;border-radius:999px;border:1px solid var(--nb-saffron);background:#fff;color:var(--nb-dark);cursor:pointer;display:inline-flex;gap:6px;align-items:center;min-height:44px;transition:background .2s,transform .15s}
.nb-tb-btn:hover:not(:disabled){background:#fff1d6}
.nb-tb-btn:active:not(:disabled){transform:scale(.97)}
.nb-tb-btn:disabled{opacity:.4;cursor:default}
.nb-tb-btn.nb-primary{background:var(--nb-saffron);color:#fff}
.nb-tb-btn.nb-primary:hover:not(:disabled){background:#8d3a0e}
.nb-prog{flex:1 1 220px;min-width:180px;text-align:center}
.nb-prog-text{font-weight:700;color:var(--nb-dark);font-size:15px;margin-bottom:5px}
.nb-prog-bar{height:7px;border-radius:99px;background:#efe0c3;overflow:hidden}
.nb-prog-bar>i{display:block;height:100%;width:0;background:linear-gradient(90deg,#d98a34,#a94712);border-radius:99px;transition:width .6s ease}
.nb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- tiny teaser (homepage) ---- */
.nb-teaser{--nb-pw:210px;--nb-ph:292px;--nb-t:22px}

@media (prefers-reduced-motion:reduce){.nb-cb,.nb-cb-shadow{animation:none}.nb-leaf{transition-duration:.01s !important}.nb-leaf.nb-turning .nb-face::after{animation:none}}

body.nb-reading .nb-lead{display:none}body.nb-reading .nb-stage{margin-top:14px}body.nb-reading .nb-title{font-size:clamp(22px,3vw,30px)}
