/* ==========================================================================
   ĀNUPŪRVĪ (আনুপূর্বী) Flip-Book Reader & Archive Master Stylesheet
   Integrated natively with Poorvam MVC. 100% self-contained & responsive.
   ========================================================================== */

/* ---------- Core Flip-Book Engine & Typography ---------- */
:root{--bg:#ece3d6;--paper:#fffaf3;--ink:#2a1e19;--mute:#7a6a5f;--rule:#d9c9b8;--red:#a8402c;--acc:#a8402c;--tint:#f6e9df;--fs:17px;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#14100d;--paper:#1f1915;--ink:#efe4d6;--mute:#a8978a;--rule:#3f332a;--red:#d4694f;--tint:#2c221c}}
:root[data-theme="dark"]{--bg:#14100d;--paper:#1f1915;--ink:#efe4d6;--mute:#a8978a;--rule:#3f332a;--red:#d4694f;--tint:#2c221c}
html{scroll-padding-top:env(safe-area-inset-top,0px)}*{box-sizing:border-box}
:lang(bn){--body:"Noto Serif Bengali","Kalpurush","Nirmala UI",serif;--head:"Anek Bangla","Hind Siliguri","Mukta","Noto Sans Bengali","Nirmala UI",sans-serif}
:lang(sa),:lang(hi){--body:"Noto Serif Devanagari","Kokila","Nirmala UI",serif;--head:"Anek Devanagari","Mukta","Noto Sans Devanagari","Nirmala UI",sans-serif}
:lang(en){--body:"Source Serif 4","Iowan Old Style",Georgia,serif;--head:"Playfair Display","Didot","Bodoni 72",Georgia,serif}
body{margin:0;background:var(--bg);color:var(--ink);font:var(--fs)/1.75 var(--body)}
h1,h2,h3,.hd{font-family:var(--head);font-weight:700;line-height:1.2}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--ink);color:var(--bg);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;padding:6px 14px;font:13px system-ui,sans-serif}
header b{font-family:var(--head);letter-spacing:.14em;color:#fff}
.ctl{display:flex;gap:4px;flex-wrap:wrap}
button{font:12px system-ui,sans-serif;background:none;color:inherit;border:1px solid currentColor;padding:3px 9px;cursor:pointer;opacity:.85}
button.on,button:hover{background:var(--red);border-color:var(--red);color:#fff;opacity:1}
header button{color:#ddd}
.sheet{width:var(--W,760px);height:var(--H,1000px);margin:14px auto;background:var(--paper);box-shadow:0 3px 22px rgba(0,0,0,.18);position:relative;overflow:hidden;display:flex;flex-direction:column}
.run{display:flex;align-items:center;gap:0;border-bottom:3px solid var(--red);font:700 13px var(--head);letter-spacing:.08em}
.run span{padding:6px 18px;flex:0 0 auto}.run i{flex:1;height:100%;background:var(--rule);align-self:stretch}
.run em{background:var(--red);color:#fff;font-style:normal;padding:6px 14px;margin-left:auto}
.in{padding:18px 26px 6px;flex:1;min-height:0;display:flex;flex-direction:column}
@media(max-width:620px){.in{padding:14px 16px 6px}}
.ph{background:linear-gradient(135deg,#7a1d2f,#c47a2c 55%,#1f3b57);color:#fff;display:flex;align-items:flex-end;min-height:260px;padding:10px;font:11px system-ui,sans-serif;opacity:.92}
.cap{font:12px/1.5 var(--body);color:var(--mute);margin:6px 0 18px;border-left:3px solid var(--red);padding-left:8px}
h2.t{font-size:clamp(28px,5vw,46px);margin:.2em 0 .15em}
.by{font:600 14px var(--head);color:var(--red);letter-spacing:.04em}
.stand{font-size:1.08em;color:var(--mute);margin:.4em 0 1em}
.cols{columns:3 210px;column-gap:26px;column-rule:1px solid var(--rule);text-align:justify;hyphens:auto}
.cols.two{columns:2 260px}.cols p{margin:0}.cols p+p{text-indent:1.4em}.lead{font-size:1.06em;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:12px 0;margin:0 0 20px;text-align:justify}.end{text-align:center;font:700 1.1em var(--head);margin:6px 0 0}
.cols p.dcp::first-letter{float:left;font:700 3.4em/.8 var(--head);color:var(--red);padding:6px 8px 0 0}
.pull{break-inside:avoid;background:var(--tint);border-top:3px solid var(--red);padding:12px 14px;margin:0 0 1em;font:700 1.1em/1.45 var(--head)}
.poem{text-align:center;white-space:pre-line;font-size:1.15em;line-height:2.1;margin:30px 0}
.orn{text-align:center;color:var(--red);font-size:22px}
.note{font:12px system-ui,sans-serif;color:var(--mute);border:1px dashed var(--rule);padding:3px 9px;display:inline-block;margin-bottom:12px}
/* cover */
.cover{padding:0;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.date{font:12px system-ui,sans-serif;display:flex;justify-content:space-between;padding:10px 22px;color:var(--mute)}
.mast{display:flex;justify-content:flex-end;padding:0 22px}
.logo{background:var(--red);color:#fff;font:800 clamp(34px,9vw,68px)/1 var(--head);padding:.12em .3em;letter-spacing:.02em;position:relative}
.logo small{display:block;font:600 11px system-ui,sans-serif;letter-spacing:.3em;opacity:.8;margin-top:4px}
.cc{display:grid;grid-template-columns:minmax(160px,230px) 1fr;gap:22px;padding:14px 22px;flex:1}
@media(max-width:620px){.cc{grid-template-columns:1fr}}
.tz .lb{display:inline-block;background:var(--red);color:#fff;font:700 11px var(--head);letter-spacing:.2em;padding:2px 8px;margin:10px 0 4px}
.tz div.l{font:700 15px/1.45 var(--head);padding:3px 0;border-bottom:1px solid var(--rule)}
.cover .ph{min-height:300px;opacity:1}
.ccap{text-align:center;padding:12px 22px 22px}.ccap .hd{font-size:26px}.ccap div{color:var(--mute);font-size:14px}
/* title + toc */
.ttl{text-align:center;flex:1;display:flex;flex-direction:column;justify-content:center;padding:20px}.ttl .logo{display:inline-block;font-size:clamp(40px,10vw,84px)}
.toc a{display:flex;align-items:baseline;gap:10px;padding:7px 0;cursor:pointer;color:inherit;border-bottom:1px dotted var(--rule)}
.toc .d{font:700 17px var(--head)}.toc .a{flex:1;color:var(--mute);font-size:.85em}.toc .n{background:var(--red);color:#fff;font:700 12px system-ui;padding:1px 7px}
.toc .lb{display:block;font:700 12px var(--head);letter-spacing:.2em;color:var(--red);margin:20px 0 2px;border-bottom:2px solid var(--red)}
.tcols{columns:2 190px;column-gap:28px}.tcols>div{break-inside:avoid}
nav.pg{max-width:880px;margin:0 auto 30px;display:flex;justify-content:space-between;align-items:center;color:var(--mute);font:13px system-ui,sans-serif}
nav.pg button{color:var(--ink)}
.in h2.t{font-size:clamp(24px,4.2vw,36px)}
.ph.s{min-height:0;height:150px}
.bodycols{position:relative;column-width:auto;column-count:var(--nc,3);column-gap:22px;column-fill:auto;flex:1;min-height:0;overflow:hidden;margin-top:12px;line-height:1.7}
.poem.bodycols{text-align:center;line-height:2.1;font-size:calc(var(--fs)*1.15)}
.contd{font:12px system-ui,sans-serif;color:var(--mute);border-bottom:1px solid var(--rule);padding-bottom:6px}
.ftr{display:flex;justify-content:space-between;padding:6px 26px 10px;font:11px system-ui,sans-serif;color:var(--mute);border-top:1px solid var(--rule);min-height:30px}
.meas{position:absolute;left:-9999px;top:0;visibility:hidden;margin:0}
.cols p.v{text-align:center;text-indent:0;line-height:1.9;margin:.55em 0;color:var(--ink)}
.cols p.v span{display:inline-block;max-width:100%}
.cols p.tr{font-style:italic;color:var(--mute)}
.poem.bodycols p.v{margin:0 0 1em}
.cols p.hh{font:700 1.05em/1.4 var(--head);text-indent:0;margin:.5em 0 .2em}

[hidden]{display:none!important}
#libv{max-width:1000px;margin:0 auto;padding:44px 16px;text-align:center}
.libt{font:700 13px system-ui,sans-serif;letter-spacing:.35em;text-transform:uppercase;color:var(--mute)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:28px;margin-top:30px}
.card{display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:3/4;background:var(--c);color:#fff;padding:22px;text-align:left;cursor:pointer;box-shadow:7px 7px 0 rgba(0,0,0,.18),0 12px 30px rgba(0,0,0,.25);transition:transform .25s}
.card:hover{transform:translateY(-6px) rotate(-1deg)}
.cn{font:800 clamp(34px,5vw,46px)/1.08 var(--head)}.ct{font-size:13px;line-height:1.5;opacity:.92}.cl{font:11px system-ui,sans-serif;letter-spacing:.14em;opacity:.8;margin-top:10px}
.book{position:relative;width:calc(var(--W)*2);height:var(--H);margin:18px auto;perspective:2600px}
.book.one{width:var(--W)}
.half{position:absolute;top:0;width:var(--W);height:var(--H);cursor:pointer}
#hl{left:0}#hr{right:0}.book.one #hr{left:0}
.book .sheet{margin:0;box-shadow:none}
#hr .sheet{box-shadow:inset 16px 0 18px -14px rgba(0,0,0,.4)}#hl .sheet{box-shadow:inset -16px 0 18px -14px rgba(0,0,0,.4)}
.book:not(.one)::before{content:'';position:absolute;inset:0;box-shadow:0 16px 44px rgba(0,0,0,.32);pointer-events:none}
#leaf{position:absolute;top:0;left:50%;width:var(--W);height:var(--H);transform-origin:left center;transform-style:preserve-3d;transition:transform .95s cubic-bezier(.5,.05,.2,1);display:none;z-index:4;pointer-events:none}
.book.one #leaf{left:0}
#leaf .f,#leaf .b{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
#leaf .b{transform:rotateY(180deg)}
#leaf .f::after,#leaf .b::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.24),transparent 20%)}
#leaf .b::after{background:linear-gradient(270deg,rgba(0,0,0,.24),transparent 20%)}
.blank{background:var(--paper)}
.pdfp img{width:100%;height:100%;object-fit:contain;display:block;min-height:0}
#mod,#bmod,#amod{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:50}
.box{background:var(--paper);color:var(--ink);padding:18px;width:min(560px,94vw);max-height:92vh;overflow:auto;display:grid;gap:8px;font:14px system-ui,sans-serif}
.box input,.box textarea,.box select{font:inherit;padding:6px;background:var(--bg);color:var(--ink);border:1px solid var(--rule)}.box textarea{min-height:140px}
.toc a{break-inside:avoid}.toc .lb{break-after:avoid}
.bodycols.one{columns:auto;column-count:auto;overflow:hidden}
.logo .lg-img{display:none}.logo.has{background:none;padding:0}.logo.has .lg-img{display:block;height:72px;margin:0 auto}.logo.has .lt{display:none}.logo.has small{color:var(--mute);opacity:1}
.bodycols{padding-bottom:8px}
/* Font URLs are relative to THIS stylesheet (assets/css/), so the fonts folder is ../fonts/. The 2nd url() is the old path, kept as a fallback. */
@font-face{font-family:'Figgins Pica';src:url('../fonts/Figgins_Pica_Updated.otf') format('opentype');font-display:swap}
/* Figgins Pica has no macron glyphs (Ā Ū Ī ā ū). This tiny supplement adds just those, drawn on the same face, so ĀNUPŪRVĪ no longer mixes in a fallback font. */
@font-face{font-family:'Figgins Pica';src:url('../fonts/Figgins_Pica_Macrons.ttf') format('truetype');font-display:swap;unicode-range:U+0100-0101,U+012A,U+016A-016B}
:lang(bn){--body:"Noto Serif Bengali","Kalpurush","Nirmala UI",serif;--head:"Figgins Pica","Noto Serif Bengali","Nirmala UI",serif}
:lang(sa),:lang(hi){--body:"Noto Serif Devanagari","Kokila","Nirmala UI",serif;--head:"Figgins Pica","Noto Serif Devanagari","Nirmala UI",serif}
:lang(en){--body:"Noto Serif","Source Serif 4",Georgia,serif;--head:"Figgins Pica",Georgia,serif}
h1,h2,h3,.hd,.logo,.cn,.toc .d,.libw,.wm,header b{font-synthesis:none}
.libw{font:400 clamp(40px,8vw,72px)/1.1 var(--head);color:var(--red)}.wm{font-family:var(--head);letter-spacing:.08em}
.fi{display:block;width:100%;object-fit:contain;margin:0 0 8px}
.bys{display:flex;flex-wrap:wrap;gap:8px 18px;margin:6px 0 4px}.ba{display:inline-flex;align-items:center;gap:8px}.ba img{width:36px;height:36px;border-radius:50%;object-fit:cover}.ba .bn{display:flex;flex-direction:column;font:600 13px var(--head)}.ba b{color:var(--red);font-weight:600}.ba small{color:var(--mute);font:400 11px var(--body)}
.cbs{columns:2 200px;column-gap:24px}.cb{display:flex;gap:10px;align-items:center;break-inside:avoid;padding:8px 0;border-bottom:1px dotted var(--rule)}
.cb img,.cb .av{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none;background:var(--tint);display:inline-flex;align-items:center;justify-content:center;color:var(--red);font-weight:700}
.cb b{display:block;font:600 15px var(--head)}.cb small{color:var(--mute);font-size:11px}
.cvimg{position:relative;min-height:240px}.cvimg img,.cthumb img{position:absolute;inset:0;margin:auto;max-width:100%;max-height:100%;object-fit:contain}
.cthumb{flex:1;min-height:0;position:relative;margin:12px 0}.cover .logo.has .lg-img{height:90px}

/* ===== responsive + no-clip overrides ===== */
.run{height:36px;flex:none}.run span,.run em{display:flex;align-items:center;height:100%;padding:0 16px}.run em{margin-left:auto}
.ftr{height:38px;flex:none;align-items:center;padding:0 26px}
.book{margin:8px auto}nav.pg{max-width:none;margin:0 auto 6px;padding:0 12px;height:40px}#libv{max-width:1400px}
.cover,.cvimg{min-height:0}.cc{min-height:0;grid-template-rows:minmax(0,1fr)}.tz{min-height:0;overflow:hidden}
@media(min-width:621px){.cc{grid-template-columns:minmax(180px,34%) 1fr}}
.toc a{display:grid;grid-template-columns:1fr auto;column-gap:10px;align-items:start}.toc .d,.toc .a{grid-column:1}.toc .a{grid-row:2}.toc .n{grid-column:2;grid-row:1/span 2}.tg{break-inside:avoid}
.poem.bodycols p.pl{text-align:justify;white-space:normal;line-height:1.8;margin:0 0 1em}
.op{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.opimg{flex:1 1 0;min-height:0;position:relative;margin-bottom:16px;overflow:hidden}
.opimg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.op h2.t{font-size:clamp(28px,4.6vw,54px);margin:.1em 0 .2em}
.op .bys,.op .by{margin:4px 0 10px}
.abs{font-size:1.08em;line-height:1.7;margin:6px 0 12px}
.abs .al{display:block;font:700 11px var(--head);letter-spacing:.2em;color:var(--red);text-transform:uppercase;margin-bottom:4px}
.pq{margin:6px 0 4px;padding:10px 18px;border-left:4px solid var(--red);background:var(--tint);font:italic 600 1.12em/1.6 var(--body);flex:none}
.pq .qm{font:700 2.2em/0 var(--head);color:var(--red);vertical-align:-.3em;margin:0 6px}
.poem.bodycols p.hh{font:700 1.2em/1.5 var(--head);color:var(--red);text-align:center;text-indent:0;margin:1.3em 0 .5em}
.poem.bodycols p.hh span{display:inline-block;background:var(--tint);border-bottom:2px solid var(--red);padding:2px 14px}

/* ===== mobile fixes: opener image, flowing first page, cover, swipe ===== */
.bys{gap:12px 28px;margin:10px 0 8px}.ba{gap:14px}.ba img{width:68px;height:68px;border:2px solid var(--red)}
.ba .bn{font:600 20px/1.3 var(--head);min-width:0}.ba small{font:400 15px/1.4 var(--body)}.by{font:600 19px var(--head)}
@media(max-width:620px){.ba img{width:56px;height:56px}.ba .bn{font-size:18px}.ba small{font-size:13px}.by{font-size:17px}}
.opimg{min-height:150px}
.fh{flex:none}
.opimg.fx{flex:none;min-height:0;margin-bottom:12px}
.opimg.fx img{object-fit:contain}
.fh .abs{background:var(--acc);color:#fff;padding:10px 16px 12px;margin:10px 0 12px;text-align:left}
.fh .abs .al{color:#fff;opacity:.85}
.cols p.al{font:700 11px var(--head);letter-spacing:.2em;color:#fff;background:var(--acc);text-transform:uppercase;text-indent:0;text-align:left;margin:0;padding:10px 16px 2px}
.cols p.ab{font-size:1.04em;color:#fff;background:var(--acc);text-indent:0;text-align:left;white-space:normal;margin:0 0 1em;padding:2px 16px 12px}
.cols p.qt{font:italic 600 1.08em/1.6 var(--body);border-left:4px solid var(--red);background:var(--tint);padding:8px 14px;text-indent:0;text-align:left;white-space:normal;margin:0 0 1em}
.book{touch-action:pan-y}
@media(max-width:620px){.cc{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr)}}

/* ===== library shelf (Desh-style) ===== */
#grid.grid{display:flex;gap:24px;margin:30px 0 0;padding:22px 22px 18px;background:var(--paper);border-radius:16px;box-shadow:0 1px 6px rgba(0,0,0,.08);overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;text-align:left}
.iss{flex:0 0 clamp(150px,19vw,230px);scroll-snap-align:start;display:block;color:inherit;cursor:pointer}
.iss .cv{position:relative;border-radius:10px;overflow:hidden;background:var(--tint);min-height:200px;box-shadow:0 2px 10px rgba(0,0,0,.2);transition:transform .2s,box-shadow .2s}
.iss:hover .cv{transform:translateY(-4px);box-shadow:0 8px 18px rgba(0,0,0,.28)}
.iss .cv img{display:block;width:100%;height:auto}
.iss .bd{position:absolute;top:8px;left:8px;width:34px;height:34px;border-radius:50%;background:var(--acc);color:#fff;border:2px solid #e9c98a;display:flex;align-items:center;justify-content:center;font:700 15px var(--head);box-shadow:0 1px 4px rgba(0,0,0,.35)}
.iss .im{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:14px 2px 4px}
.iss .dtx{flex:1;font:500 clamp(14px,1.5vw,17px)/1.35 var(--body);color:var(--ink)}
.iss .rd{font:600 clamp(14px,1.5vw,17px) var(--head);color:var(--red);white-space:nowrap}
@media(max-width:620px){.iss{flex-basis:44vw}#grid.grid{padding:16px 14px 12px;gap:16px}}

/* ===== library: full-width grid + larger header ===== */
#libv{max-width:none;padding:clamp(24px,4vw,56px) clamp(14px,3vw,48px)}
.libl img{height:clamp(96px,15vw,170px)!important}
.libw{font-size:clamp(64px,12vw,130px)}
.libt{font-size:clamp(18px,2.2vw,28px);letter-spacing:.4em;margin-top:clamp(10px,2vw,22px);color:var(--ink)}
#lmsg{font-size:clamp(15px,1.6vw,20px)!important;margin:16px 0!important}
#libv button{font-size:clamp(14px,1.4vw,18px);padding:8px 22px;border-width:2px;color:var(--ink)}
#libv button:hover{color:#fff}
#grid.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(18px,2.5vw,36px);padding:clamp(16px,2.5vw,32px);overflow:visible;scroll-snap-type:none;margin-top:clamp(22px,3vw,40px)}
.iss{flex:none;min-width:0}
.iss .bd{width:46px;height:46px;font-size:20px;top:12px;left:12px}
.iss .dtx,.iss .rd{font-size:clamp(17px,1.7vw,24px)}
.iss .im{padding:16px 4px 6px}

/* ===== library: covers sized to fit the screen ===== */
#grid.grid{--ch:clamp(260px,calc(100vh - 470px),560px);grid-template-columns:repeat(auto-fill,calc(var(--ch)*.667));justify-content:start;gap:clamp(18px,2vw,32px)}
@media(max-width:620px){#grid.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}

/* ===== logo on each issue cover (top-left); issue number moves top-right ===== */
.iss .lg{position:absolute;top:10px;left:10px;z-index:2;background:rgba(255,250,243,.92);border-radius:8px;padding:5px 10px;box-shadow:0 1px 5px rgba(0,0,0,.3);max-width:70%;line-height:1}
.iss .cv .lg img{width:auto;height:clamp(20px,2.2vw,32px);display:block}
.iss .lg .wm{color:var(--red);font:600 clamp(14px,1.5vw,20px) var(--head)}
.iss .bd{left:auto;right:12px}

/* ===== logo top-right, larger, no background; number badge back to top-left ===== */
.iss .lg{left:auto;right:12px;top:12px;background:none;box-shadow:none;border-radius:0;padding:0}
.iss .cv .lg img{height:clamp(32px,4vw,58px);filter:drop-shadow(0 1px 3px rgba(255,255,255,.55))}
.iss .lg .wm{font-size:clamp(18px,2vw,28px)}
.iss .bd{right:auto;left:12px}

/* ===== cover page: bigger, readable, coloured text instead of filled labels ===== */
.cover .date{font-size:clamp(14px,1.4vw,18px);padding:12px 24px}
.cover .logo.has small,.cover .logo small{font-size:clamp(13px,1.4vw,18px);letter-spacing:.22em;color:var(--mute);opacity:1;margin-top:8px}
.cover .tz .lb{display:block;background:none;padding:0;color:var(--red);font:700 clamp(14px,1.4vw,18px) var(--head);letter-spacing:.14em;margin:clamp(12px,1.6vw,20px) 0 3px}
.cover .tz>.lb:first-child{color:var(--ink);font-size:clamp(17px,1.8vw,24px);letter-spacing:.08em;margin-top:0;padding-bottom:6px;border-bottom:2px solid var(--red)}
.cover .tz div.l{font:700 clamp(18px,2vw,26px)/1.4 var(--head);color:var(--ink);padding:4px 0 8px}
.cover .ccap .hd{font-size:clamp(26px,3vw,40px);color:var(--ink)}
.cover .ccap div{font-size:clamp(16px,1.7vw,22px);color:var(--red)}

/* ===== redesigned cover: masthead, framed cover art, "in this issue" cover lines ===== */
.cv2{padding:0}
.cv2 .cvtop{display:flex;justify-content:space-between;padding:12px clamp(16px,3vw,28px) 6px;font:600 clamp(13px,1.4vw,17px) var(--head);letter-spacing:.12em;color:var(--mute)}
.cv2 .cvmast{margin:0 clamp(16px,3vw,28px);padding:12px 0 10px;text-align:center;border-top:4px solid var(--red);border-bottom:1px solid var(--ink)}
.cv2 .logo{display:inline-block;background:none;color:var(--red);padding:0}
.cv2 .logo .lt{font-size:clamp(36px,6vw,64px)}
.cv2 .logo.has .lg-img{height:clamp(60px,9vh,108px);margin:0 auto}
.cv2 .logo small,.cv2 .logo.has small{font-size:clamp(12px,1.3vw,16px);letter-spacing:.3em;color:var(--mute);margin-top:6px}
.cv2 .cvhero{position:relative;flex:1;min-height:0;margin:clamp(12px,2vh,20px) clamp(16px,3vw,28px) 0}
.cv2 .cvhero .cvimg{position:absolute;inset:0;min-height:0}
.cv2 .cvhero .cvimg img{filter:drop-shadow(0 6px 14px rgba(0,0,0,.28))}
.cv2 .cvin{flex:none;margin:clamp(12px,2vh,20px) clamp(16px,3vw,28px) clamp(12px,2vh,18px);border-top:4px solid var(--red);padding-top:8px}
.cv2 .cvh{font:700 clamp(14px,1.5vw,18px) var(--head);letter-spacing:.2em;color:var(--ink);margin-bottom:2px}
.cv2 .tz{display:grid;grid-template-columns:repeat(auto-fit,minmax(clamp(140px,22vw,210px),1fr));column-gap:clamp(14px,2vw,26px);align-content:start;max-height:clamp(110px,19vh,190px);overflow:hidden;min-height:0}
.cv2 .tz .tzi{padding:7px 0 6px;border-bottom:1px solid var(--rule)}
.cv2 .tz .tzi .lb{display:block;background:none;padding:0;margin:0 0 1px;color:var(--red);font:700 clamp(11px,1.1vw,14px) var(--head);letter-spacing:.14em}
.cv2 .tz .tzi div.l{font:700 clamp(15px,1.6vw,20px)/1.35 var(--head);color:var(--ink);padding:0;border:0}

/* ---------- Rozha One Hindi Font ---------- */

@font-face {
  font-family: 'Rozha One';
  src: url('../fonts/hindi_fonts/RozhaOne-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
.libw-hi, :lang(hi) .libw, :lang(sa) .libw, .anupurvi-logo-hi {
  font-family: 'Rozha One', 'Noto Serif Devanagari', serif !important;
  font-weight: 400;
  letter-spacing: 0.02em;
}
:lang(hi) #brand, :lang(sa) #brand {
  font-family: 'Rozha One', 'Noto Serif Devanagari', serif;
}


/* ---------- Reader Navigation & Control Bar ---------- */

/* ---------- control bar ---------- */
#rd>header.rh{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:8px 18px;padding:8px clamp(10px,2vw,22px);background:var(--paper);color:var(--ink);font:13px system-ui,sans-serif;
  border-top:3px solid var(--red);border-bottom:1px solid var(--rule);box-shadow:0 2px 14px rgba(0,0,0,.07)}
@supports(background:color-mix(in srgb,red,blue)){
  #rd>header.rh{background:color-mix(in srgb,var(--paper) 90%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px)}}
.rh .ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.rh-l{display:flex;align-items:center;gap:12px;min-width:0;flex:0 1 auto}
.rh #brand{color:var(--red);font-size:clamp(15px,1.7vw,19px);letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:12px;border-left:1px solid var(--rule)}
:lang(bn) .rh #brand,:lang(hi) .rh #brand,:lang(sa) .rh #brand{letter-spacing:0}
.rh-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.rh .grp,.rh #langs{display:flex;align-items:center;gap:2px;padding:3px;background:var(--tint);border:1px solid var(--rule);border-radius:999px}
.rh #langs:empty,.rh .grp:not(:has(>:not([hidden]))){display:none}
.rh button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:30px;min-width:30px;padding:0 12px;border:0;border-radius:999px;
  background:transparent;color:var(--ink);font:600 12.5px/1 system-ui,sans-serif;letter-spacing:.01em;white-space:nowrap;opacity:1;cursor:pointer;
  transition:background .15s,color .15s,box-shadow .15s}
.rh .grp button{padding:0 10px}
.rh button:hover{background:var(--paper);color:var(--red);box-shadow:0 1px 4px rgba(0,0,0,.14)}
.rh button.on,.rh button.on:hover{background:var(--red);color:#fff;box-shadow:0 1px 5px rgba(0,0,0,.25)}
.rh button:focus-visible,nav.pg button:focus-visible,.rh #pj:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.rh #langs button{font-family:var(--body);font-weight:600;font-size:13.5px}
.rh button.back{padding:0 14px 0 8px;background:var(--tint);border:1px solid var(--rule);height:32px}
.rh button.back:hover{background:var(--red);border-color:var(--red);color:#fff}
.rh .tsz{font-family:"Noto Serif",Georgia,serif;font-weight:600;line-height:1}
.rh .tsz.s{font-size:12px}.rh .tsz.l{font-size:18px}
.rh #snd .x{display:none}.rh #snd.off .w{display:none}.rh #snd.off .x{display:block}.rh #snd.off{color:var(--mute)}
.rh .pjw{display:inline-flex;align-items:center;gap:6px;padding:0 4px 0 10px;font:600 12px system-ui,sans-serif;color:var(--mute)}
.rh #pj{width:46px;height:24px;padding:0 4px;text-align:center;font:600 12.5px system-ui,sans-serif;color:var(--ink);background:var(--paper);
  border:1px solid var(--rule);border-radius:999px;-moz-appearance:textfield;appearance:textfield}
.rh #pj::-webkit-outer-spin-button,.rh #pj::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
@media(max-width:760px){
  .rh-l{flex:1 1 auto}
  .rh-r{flex:1 1 100%;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .rh-r::-webkit-scrollbar{display:none}.rh-r .grp{flex:none}
  .rh .pjw>span{display:none}.rh #pj{width:42px}
}



/* ---------- page navigator ---------- */
nav.pg{display:flex;justify-content:center;align-items:center;gap:14px}
nav.pg button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:50%;
  border:1px solid var(--rule);background:var(--paper);color:var(--ink);opacity:1;box-shadow:0 1px 4px rgba(0,0,0,.12);transition:background .15s,color .15s,transform .15s}
nav.pg button .ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
nav.pg button:hover:not(:disabled){background:var(--red);border-color:var(--red);color:#fff;transform:translateY(-1px)}
nav.pg button:disabled{opacity:.35;cursor:default;box-shadow:none}
#pos{min-width:104px;text-align:center;padding:7px 18px;border-radius:999px;background:var(--paper);border:1px solid var(--rule);
  color:var(--ink);font:600 13px system-ui,sans-serif;letter-spacing:.06em;font-variant-numeric:tabular-nums}

/* ---------- dialogs ---------- */
#mod,#bmod,#amod{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.box{border-radius:16px;border:1px solid var(--rule);border-top:4px solid var(--red);box-shadow:0 18px 50px rgba(0,0,0,.35);padding:22px;gap:10px}
.box>b{font:700 17px var(--head);color:var(--ink)}
.box input,.box textarea,.box select{border-radius:8px;padding:8px 10px}
.box input:focus,.box textarea:focus,.box select:focus{outline:2px solid var(--red);outline-offset:-1px}
.box button{border-radius:999px;padding:7px 18px;border:1px solid var(--rule);background:var(--tint);color:var(--ink);font-weight:600;opacity:1}
.box button:hover{background:var(--red);border-color:var(--red);color:#fff}

/* ---------- ĀNUPŪRVĪ catch-line on cover / title pages: Noto Serif only, no tracking (tracking breaks Bengali/Devanagari conjuncts) ---------- */
.sheet .logo small,.sheet .cover .logo small,.sheet .cover .logo.has small,.sheet .cv2 .logo small,.sheet .cv2 .logo.has small{
  display:block;width:max-content;max-width:100%;margin:8px auto 0;
  font-family:var(--body);font-weight:500;font-style:normal;font-size:clamp(13px,1.5vw,18px);line-height:1.55;
  letter-spacing:0!important;word-spacing:0;text-transform:none;font-synthesis:none;font-kerning:normal;
  white-space:normal;text-wrap:balance;color:var(--mute);opacity:1}
.sheet .ttl .logo small{font-size:clamp(16px,2vw,24px)}

/* ---------- loader ---------- */
.spin{display:inline-block;width:44px;height:44px;border-radius:50%;border:3px solid var(--rule);border-top-color:var(--red);animation:spn .8s linear infinite;flex:none}
.spin.sm{width:22px;height:22px;border-width:2px}
@keyframes spn{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spin{animation:spnp 1.6s ease-in-out infinite;border-top-color:var(--rule);background:var(--red)}@keyframes spnp{50%{opacity:.35}}}
#ldr{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.28);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:ldin .2s ease both}
@keyframes ldin{from{opacity:0}}
#ldr .ldc{display:flex;flex-direction:column;align-items:center;gap:14px;min-width:min(260px,80vw);padding:26px 34px;border-radius:18px;background:var(--paper);color:var(--ink);
  border:1px solid var(--rule);border-top:4px solid var(--red);box-shadow:0 18px 50px rgba(0,0,0,.35);text-align:center}
#ldt{font:600 14px/1.4 system-ui,sans-serif;letter-spacing:.02em}
body.ld #lmsg{display:none!important}



/* ---------- Library Archive Masthead & Navigation ---------- */

/* neutralise the reader's global `header{}` rule, which also matches this header */
.lh{display:block;flex-wrap:nowrap;justify-content:normal;align-items:normal;gap:0;padding:0;color:var(--ink);font:inherit}
.lh a{color:inherit}
#libv{--px:clamp(14px,3vw,48px);--py:clamp(24px,4vw,56px)}
.lh{position:sticky;top:0;z-index:20;margin:calc(-1*var(--py)) calc(-1*var(--px)) clamp(18px,3vw,36px);
  background:var(--paper);border-top:4px solid var(--red);box-shadow:0 2px 10px rgba(0,0,0,.1);text-align:left}
.lh .l1{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:clamp(10px,1.6vw,20px) var(--px)}
.lh .ldt{display:flex;flex-direction:column;line-height:1.3}
.lh .ldt .b1{font:700 clamp(17px,2vw,26px)/1.2 var(--body);color:var(--ink)}
.lh .ldt .b1 em{font-style:normal;color:var(--red)}
.lh .ldt .b2{font:600 clamp(14px,1.5vw,19px)/1.3 var(--body);color:var(--ink)}
.lh .lc{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.lh .lc .libl img{height:clamp(48px,7vw,84px)!important;display:block}
.lh .ltag{font:600 clamp(11px,1.2vw,15px) var(--body);color:var(--red);letter-spacing:.04em}
.lh .lr{display:flex;justify-content:flex-end;align-items:center;gap:14px}
.lh .lsite{font:600 clamp(12px,1.2vw,15px) var(--body);color:var(--red);text-decoration:none;border-bottom:1.5px solid transparent;white-space:nowrap}
.lh .lsite:hover{border-color:var(--red)}
.lh nav{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);overflow-x:auto;scrollbar-width:none}
.lh nav::-webkit-scrollbar{display:none}
.lh nav ul{list-style:none;margin:0 auto;padding:0 var(--px);display:flex;justify-content:center;gap:clamp(4px,1.6vw,26px);min-width:max-content}
.lh nav a{display:block;padding:12px clamp(8px,1vw,14px);font:700 clamp(12px,1.15vw,14px) system-ui,sans-serif;letter-spacing:.16em;
  text-transform:uppercase;text-decoration:none;color:var(--ink);border-bottom:3px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}
.lh nav a:hover{color:var(--red);border-color:var(--red)}
@media(max-width:760px){
  .lh .l1{grid-template-columns:1fr auto;grid-template-areas:"c c" "d r";row-gap:8px}
  .lh .lc{grid-area:c}.lh .ldt{grid-area:d}.lh .lr{grid-area:r}
  .lh nav ul{justify-content:flex-start;margin:0}
}


/* refresh button (header) */
#libv .lh .lbtn{width:36px;height:36px;padding:0;border:1.5px solid var(--rule);border-radius:50%;background:none;color:var(--ink);
  font:700 18px/1 system-ui,sans-serif;display:inline-flex;align-items:center;justify-content:center;opacity:1;cursor:pointer;transition:transform .4s,border-color .15s,color .15s}
#libv .lh .lbtn:hover{background:none;border-color:var(--red);color:var(--red);transform:rotate(180deg)}
/* status messages (loading / errors) appear only when needed, as a small pill */
#libv #lmsg{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:40;margin:0!important;padding:8px 18px;
  border-radius:999px;background:var(--ink);color:var(--bg);font:600 14px system-ui,sans-serif!important;max-width:90vw;box-shadow:0 4px 16px rgba(0,0,0,.25)}
#libv #lmsg:empty{display:none}

/* two logos */
.lh .lgs{display:flex;align-items:center;gap:clamp(12px,2.4vw,32px)}
.lh .lgs i{width:1px;height:clamp(36px,5vw,64px);background:var(--rule)}
.lh .lgs a{display:block;line-height:0}
.lh .lgp img{height:clamp(44px,6.5vw,78px);width:auto;display:block}
.lh .lgs .libw{font-size:clamp(24px,3.4vw,40px);line-height:1}
.lh .lgx img{height:clamp(44px,6.5vw,78px);width:auto;display:block}
@media(max-width:760px){.lh .lgs{flex-wrap:wrap;justify-content:center;gap:10px 14px}.lh .lgs i{display:none}.lh .lgp img,.lh .lgx img,.lh .lc .libl img{height:40px!important}}

/* external links (target=_blank) get a small "opens in a new tab" arrow, site-wide */
a[target="_blank"]:not(.noext)::after{content:"";display:inline-block;width:.78em;height:.78em;margin-left:.35em;vertical-align:-.04em;flex:none;
  background:currentColor;opacity:.7;transition:opacity .15s,transform .15s;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E") center/contain no-repeat}
a[target="_blank"]:not(.noext):hover::after{opacity:1;transform:translate(1px,-1px)}
.lh .lsite{display:inline-flex;align-items:center}
.lh nav a{display:inline-flex;align-items:center}
.lh nav li{display:flex}


/* ---------- Library Archive Shelves ---------- */

.arch{text-align:left}
.arch-t{display:flex;justify-content:center;align-items:baseline;gap:.6em;margin:0 0 clamp(8px,2vw,20px);font:700 clamp(28px,4.4vw,52px)/1.2 var(--head);color:var(--ink)}
.arch-t i{font-style:normal;font-weight:400;color:var(--red)}
.asec{scroll-margin-top:170px}
.asec-t{display:flex;align-items:baseline;gap:12px;margin:clamp(24px,4vw,44px) 0 clamp(14px,2vw,22px);padding-bottom:8px;border-bottom:2px solid var(--red);font:700 clamp(18px,2.2vw,26px) var(--head);letter-spacing:.04em;color:var(--ink)}
.asec-t small{font:500 .8em var(--body);color:var(--mute)}
.asec-src{margin-left:auto;font:600 clamp(12px,1.2vw,15px) var(--body);color:var(--red);text-decoration:none;white-space:nowrap}
.asec-src:hover{text-decoration:underline}
.vol+.vol{margin-top:clamp(18px,3vw,32px);padding-top:clamp(18px,3vw,32px);border-top:1px solid var(--rule)}
.vol-t{margin:0 0 14px;font:700 clamp(13px,1.3vw,16px) system-ui,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--red)}
.aempty{margin:0;color:var(--mute);font:14px/1.6 system-ui,sans-serif}


.awrap{background:var(--paper);border-radius:16px;box-shadow:0 1px 6px rgba(0,0,0,.08);padding:clamp(16px,2.5vw,32px);text-align:left}
.awrap .vol-t{display:flex;align-items:baseline;gap:12px;margin:0 0 14px;font:700 clamp(13px,1.3vw,16px) system-ui,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--red)}
.awrap .vol-t small{font:500 1em var(--body);letter-spacing:0;text-transform:none;color:var(--mute)}
.agrid{--ch:clamp(260px,calc(100vh - 470px),560px);display:grid;grid-template-columns:repeat(auto-fill,calc(var(--ch)*.667));justify-content:start;gap:clamp(18px,2vw,32px);min-height:120px}
@media(max-width:620px){.agrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
/* uniform 3:4 covers; gradient shows through if a cover image is missing */
.agrid .iss{flex:none;min-width:0;text-decoration:none}
.agrid .iss .cv{aspect-ratio:3/4;min-height:0;background:linear-gradient(145deg,#7a1d2f,#c47a2c 60%,#1f3b57)}
.agrid .iss .cv>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* loading shimmer while the API responds */
.agrid:empty::before{content:'';grid-column:1/-1;height:120px;border-radius:12px;
  background:linear-gradient(100deg,var(--tint) 30%,var(--paper) 50%,var(--tint) 70%) 0 0/200% 100%;animation:agsh 1.3s linear infinite}
@keyframes agsh{to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.agrid:empty::before{animation:none}}


.agrid .aempty{grid-column:1/-1;align-self:center}
.asec-src{margin-left:auto;font:600 clamp(12px,1.2vw,15px) var(--body);color:var(--red);text-decoration:none;white-space:nowrap}
.asec-src:hover{text-decoration:underline}


/* ---------- Library Footer & Credits ---------- */

/* Language switcher hidden inside reader */
#langs { display: none !important; }

/* ==============================================================================
   FULL-WIDTH LIBRARY CONTAINER & DEDICATED ARCHIVE SPACING
   ============================================================================== */
#libv {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  text-align: center;
  overflow-x: hidden;
}

.lh {
  position: sticky !important;
  top: 0 !important;
  z-index: 20 !important;
  width: 100% !important;
  margin: 0 0 clamp(24px, 4vw, 44px) 0 !important;
  left: 0;
  right: 0;
}

.arch {
  text-align: left;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 0 clamp(16px, 3.5vw, 48px) clamp(64px, 8vw, 120px) !important;
}

