:root{
  --bg:#080808; --surface:#0f0f0f; --raised:#141414;
  --border:rgba(255,255,255,.07); --border-md:rgba(255,255,255,.12);
  --green:#00E599; --green-dim:rgba(0,229,153,.08);
  --text:#f2f2f2; --sub:#8d8d8d; --dim:#525252;
  --r-sm:10px; --r-md:14px; --r-lg:20px; --max:1140px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden}
body{background:var(--bg);color:var(--text);font-family:'Hind Siliguri','Inter',-apple-system,sans-serif;
  line-height:1.75;-webkit-font-smoothing:antialiased;overflow-wrap:anywhere}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:6px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}

.nav{position:sticky;top:0;z-index:50;background:rgba(8,8,8,.82);backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}
.nav-in{display:flex;align-items:center;gap:20px;height:62px;max-width:var(--max);margin:0 auto;padding:0 20px}
.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:.94rem}
.brand-dot{width:9px;height:9px;border-radius:50%;background:var(--green);flex-shrink:0;
  box-shadow:0 0 12px rgba(0,229,153,.6)}
.nav-links{display:none;gap:26px;font-size:.86rem;color:var(--sub);font-weight:500;margin-left:auto}
.nav-links a:hover{color:var(--text)}
@media(min-width:860px){.nav-links{display:flex}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:99px;
  font-family:inherit;font-weight:700;cursor:pointer;transition:.18s}
.btn-p{background:var(--green);color:#04150e}
.btn-p:hover{filter:brightness(1.08)}
.btn-sm{padding:9px 17px;font-size:.82rem;margin-left:auto}
@media(min-width:860px){.btn-sm{margin-left:0}}

.blog-hd{padding:56px 0 30px;border-bottom:1px solid var(--border)}
.blog-hd h1{font-size:clamp(1.9rem,5vw,2.9rem);font-weight:800;letter-spacing:-.02em;line-height:1.25}
.blog-hd p{color:var(--sub);margin-top:10px;max-width:60ch}
.blog-main{padding:34px 20px 70px}
.empty{color:var(--sub);text-align:center;padding:60px 0}

.cards{display:grid;gap:18px;grid-template-columns:1fr}
@media(min-width:640px){.cards{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.cards{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  overflow:hidden;transition:border-color .18s,transform .18s}
.card:hover{border-color:var(--border-md);transform:translateY(-2px)}
.card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--raised)}
/* Without a cover image a flat grey box reads as a broken image, so the
   placeholder is a deliberate brand panel instead. */
.card-ph{width:100%;aspect-ratio:16/5;background:
  radial-gradient(120% 140% at 12% 0%,rgba(0,229,153,.16),transparent 60%),
  linear-gradient(160deg,#101010,#0b0b0b);
  border-bottom:1px solid var(--border)}
.card-b{padding:16px 17px 19px}
.card-date{font-size:.72rem;color:var(--dim);font-weight:600;letter-spacing:.02em}
.card h3{font-size:1.02rem;font-weight:700;line-height:1.45;margin:6px 0 7px}
.card-d{font-size:.84rem;color:var(--sub);line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.post-in{max-width:720px;padding-top:34px;padding-bottom:70px}
.back{font-size:.82rem;color:var(--sub);font-weight:600}
.back:hover{color:var(--green)}
.post-meta{font-size:.76rem;color:var(--dim);font-weight:600;margin-top:22px}
.post h1{font-size:clamp(1.7rem,4.6vw,2.55rem);font-weight:800;letter-spacing:-.02em;
  line-height:1.32;margin:10px 0 14px}
.tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}
.tag{font-size:.72rem;font-weight:700;padding:4px 11px;border-radius:99px;
  background:var(--green-dim);color:var(--green)}
/* The cover is the Facebook card, which is portrait (1080x1350) and repeats the
   title. Full height it would push every word below the fold, so it is cropped
   to a banner here; og:image still gets the whole card. */
.cover{width:100%;max-height:340px;object-fit:cover;object-position:center 22%;
  border-radius:var(--r-lg);border:1px solid var(--border);margin-bottom:12px}

/* Bengali conjuncts need more room than Latin at the same nominal size, and
   "hard to read means won't read" — a quick bounce back to the results is a
   ranking signal, not just a lost reader. */
.prose{font-size:1.12rem;line-height:1.95;color:#e8e8e8}
.prose h2{font-size:1.42rem;font-weight:800;margin:38px 0 12px;letter-spacing:-.01em;line-height:1.4}
.prose h3{font-size:1.14rem;font-weight:700;margin:28px 0 9px;color:var(--green)}
.prose h4{font-size:1rem;font-weight:700;margin:22px 0 7px}
.prose p{margin:0 0 17px}
.prose ul,.prose ol{margin:0 0 18px;padding-left:24px}
.prose ol{list-style-type:bengali}   /* ১. ২. ৩. instead of 1. 2. 3. */
.prose li{margin-bottom:8px}
.prose li::marker{color:var(--green)}
.prose a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.prose strong{font-weight:700;color:#fff}
.prose code{background:var(--raised);padding:2px 6px;border-radius:6px;font-size:.9em}
.prose pre{background:var(--raised);border:1px solid var(--border);border-radius:var(--r-md);
  padding:14px;overflow-x:auto;margin:0 0 18px}
.prose hr{border:0;border-top:1px solid var(--border);margin:34px 0}
.prose figure{margin:0 0 22px}
.prose figure img,.prose p img{border-radius:var(--r-md);border:1px solid var(--border);margin:0 auto}
.prose figcaption{font-size:.78rem;color:var(--dim);text-align:center;margin-top:8px}
.prose blockquote{border-left:3px solid var(--green);background:var(--surface);
  padding:14px 18px;border-radius:0 var(--r-md) var(--r-md) 0;margin:0 0 20px;color:var(--sub)}
.prose blockquote.ayah{border-left:0;border:1px solid rgba(0,229,153,.18);background:var(--green-dim);
  border-radius:var(--r-md);text-align:center;padding:20px 18px}
.prose blockquote.ayah .ar{font-family:'Amiri',serif;font-size:1.5rem;line-height:2.1;
  color:var(--text);direction:rtl;margin:0}
.prose blockquote.ayah cite{display:block;font-style:normal;font-size:.78rem;
  color:var(--green);font-weight:700;margin-top:12px}

.share{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:38px 0 0;
  padding-top:22px;border-top:1px solid var(--border);font-size:.82rem}
.share span{color:var(--dim);font-weight:600}
.share a{padding:7px 15px;border-radius:99px;border:1px solid var(--border-md);
  color:var(--sub);font-weight:600;transition:.18s}
.share a:hover{color:var(--green);border-color:rgba(0,229,153,.35)}

.more{margin-top:52px}
.more h2{font-size:1.2rem;font-weight:800;margin-bottom:16px}

.topic-row{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:8px}
.topic{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:99px;
  background:var(--surface);border:1px solid var(--border);font-weight:700;font-size:.88rem;
  transition:border-color .18s,color .18s}
.topic:hover{border-color:rgba(0,229,153,.35);color:var(--green)}
.topic span{font-size:.74rem;font-weight:700;color:var(--green);background:var(--green-dim);
  padding:2px 8px;border-radius:99px}

.hub-list{margin-top:34px;padding-top:26px;border-top:1px solid var(--border)}
.hub-list h2{font-size:1.3rem;font-weight:800;margin-bottom:14px}
.hub-list h2 span{font-size:.86rem;color:var(--sub);font-weight:600}
.hub-list ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.hub-list a{display:flex;flex-direction:column;gap:3px;padding:13px 16px;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--r-md);transition:border-color .18s,background .18s}
.hub-list a:hover{border-color:rgba(0,229,153,.3);background:var(--raised)}
.hub-list strong{font-size:.96rem;font-weight:700;color:var(--text);line-height:1.5}
.hub-list a span{font-size:.8rem;color:var(--sub);line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.row-hd{font-size:1.1rem;font-weight:800;margin:26px 0 14px}
.row-hd:first-child{margin-top:0}
.series-card .card-date{color:var(--green);font-weight:700}

.ep-nav{display:flex;justify-content:space-between;gap:12px;margin-top:36px;font-size:.84rem;font-weight:700}
.ep-nav a{color:var(--green)}
.ep-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ep-list a{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);
  transition:border-color .18s,background .18s}
.ep-list a:hover{border-color:rgba(0,229,153,.3);background:var(--raised)}
.ep-no{flex-shrink:0;min-width:2.2em;font-weight:800;color:var(--green);font-size:.9rem;padding-top:2px}
.ep-b{display:flex;flex-direction:column;gap:3px;min-width:0}
.ep-t{font-weight:700;font-size:.95rem;line-height:1.5}
.ep-d{font-size:.8rem;color:var(--sub);line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

footer{border-top:1px solid var(--border);padding:32px 0 40px;margin-top:20px}
.disclaimer{font-size:.76rem;color:var(--dim);line-height:1.75;max-width:80ch;margin-bottom:20px}
.foot-bot{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;
  font-size:.76rem;color:var(--dim);border-top:1px solid var(--border);padding-top:18px}

.lib-count{font-size:.8rem;color:var(--sub);font-weight:600}
.lib-blurb{font-size:.86rem;color:var(--sub);margin:-6px 0 12px;max-width:70ch}
.lib-sec{margin-bottom:34px}
.lib-sec .row-hd{display:flex;align-items:baseline;gap:10px}
.lib-sec .row-hd a{color:inherit}
.lib-sec .row-hd a:hover{color:var(--green)}
.lib-more{margin-top:10px;font-size:.86rem;font-weight:700}
.lib-more a{color:var(--green)}
.lib-code{flex-shrink:0;min-width:3em;font-weight:800;color:var(--green);font-size:.78rem;padding-top:3px}
.lib-search{margin:0 0 22px}
.lib-search input{width:100%;padding:12px 14px;font:inherit;font-size:.95rem;border-radius:10px;
  border:1px solid var(--line,#2a2a2a);background:var(--card,#111);color:inherit}
.lib-search input:focus{outline:2px solid var(--green);outline-offset:1px}
.trk-code{font-weight:800;color:var(--green);font-size:.78rem;letter-spacing:.06em;margin-bottom:6px}
.trk-ar{font-family:Amiri,serif;font-size:1.05rem;line-height:1.9;color:var(--sub);margin-top:10px;max-width:60ch}
.trk-embed{position:relative;padding-top:56.25%;margin:0 0 18px;border-radius:12px;overflow:hidden;background:#000}
.trk-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.trk-acts{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}
.trk-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.trk-tags a{font-size:.78rem;font-weight:600;padding:4px 10px;border-radius:999px;
  border:1px solid var(--line,#2a2a2a);color:var(--sub)}
.trk-tags a:hover{color:var(--green);border-color:var(--green)}
