/* =========================================================
   আরিফ খন্দকার — লেখক পোর্টফোলিও
   রঙ: কালো · অফ-হোয়াইট · সোনালি
   ========================================================= */

:root {
  /* রঙ */
  --ink: #0e0d0b;
  --ink-2: #171512;
  --ink-3: #221f1a;
  --ivory: #f7f3ea;
  --ivory-2: #efe9dc;
  --white: #fffdf8;
  --gold: #c9a45c;          /* কালো পটভূমিতে */
  --gold-soft: #e2c98f;
  --gold-deep: #8c6a2c;     /* অফ-হোয়াইট পটভূমিতে লেখা */
  --text: #24211c;
  --muted: #6f685c;
  --muted-dark: #a59c8b;
  --line: #ddd4c2;
  --line-dark: rgba(201, 164, 92, .22);

  /* অক্ষর */
  --font-display: "Tiro Bangla", "Noto Serif Bengali", serif;
  --font-body: "Noto Sans Bengali", sans-serif;
  --font-literary: "Noto Serif Bengali", "Tiro Bangla", serif;
  --font-latin: "Cormorant Garamond", Georgia, serif;

  --max: 1180px;
  --gutter: 24px;
  --header-h: 72px;
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- ভিত্তি ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.85;
  color: var(--text);
  background: var(--ivory);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

body.no-scroll { overflow: hidden; }

img { max-width: 100%; display: block; }
a { color: inherit; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.3;
  margin: 0;
  color: var(--ink);
}

p { margin: 0 0 1.1em; overflow-wrap: anywhere; }

::selection { background: var(--gold); color: var(--ink); }

.container {
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.skip-link {
  position: absolute;
  left: -999px;
  top: 8px;
  z-index: 300;
  background: var(--gold);
  color: var(--ink);
  padding: 8px 14px;
}
.skip-link:focus { left: 8px; }

:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }

/* ---------- বোতাম ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  padding: 10px 28px;
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: .02em;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 0;
  cursor: pointer;
  transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.btn:active { transform: scale(.98); }
.btn svg { width: 18px; height: 18px; fill: currentColor; flex-shrink: 0; }

.btn-gold { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.btn-gold:hover { background: var(--gold-soft); border-color: var(--gold-soft); }

.btn-ghost { background: transparent; color: var(--ivory); border-color: rgba(201,164,92,.55); }
.btn-ghost:hover { border-color: var(--gold); color: var(--gold-soft); }

.btn-outline { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn-outline:hover { background: var(--ink); color: var(--gold-soft); }

.btn-outline-gold { background: transparent; color: var(--gold-soft); border-color: rgba(201,164,92,.55); }
.btn-outline-gold:hover { border-color: var(--gold); background: rgba(201,164,92,.08); }

/* ---------- হেডার ---------- */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  height: var(--header-h);
  z-index: 100;
  color: var(--ivory);
  transition: background .4s var(--ease), box-shadow .4s var(--ease), height .4s var(--ease);
}

.site-header.scrolled {
  --header-h: 64px;
  background: rgba(14, 13, 11, .92);
  box-shadow: 0 1px 0 var(--line-dark);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.header-inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  position: relative;
  z-index: 102;
}

.brand-mark {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid var(--gold);
  color: var(--gold);
  font-family: var(--font-display);
  font-size: 22px;
  line-height: 1;
  padding-top: 4px;
}

.brand-text { display: flex; flex-direction: column; line-height: 1.2; }
.brand-bn { font-family: var(--font-display); font-size: 19px; white-space: nowrap; }
.brand-en {
  font-family: var(--font-latin);
  font-size: 12px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--gold);
}

.site-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 32px;
}

.site-nav a {
  text-decoration: none;
  font-size: 16px;
  position: relative;
  padding: 6px 0;
  color: rgba(247, 243, 234, .82);
  transition: color .3s var(--ease);
}
.site-nav a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -2px;
  width: 4px;
  height: 4px;
  margin-left: -2px;
  background: var(--gold);
  transform: rotate(45deg) scale(0);
  transition: transform .3s var(--ease);
}
.site-nav a:hover { color: var(--ivory); }
.site-nav a.active { color: var(--gold-soft); }
.site-nav a.active::after { transform: rotate(45deg) scale(1); }

.nav-foot { display: none; }

.menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  padding: 12px 10px;
  background: none;
  border: 1px solid var(--line-dark);
  color: var(--gold);
  cursor: pointer;
  position: relative;
  z-index: 102;
  -webkit-tap-highlight-color: transparent;
}
.menu-toggle span {
  display: block;
  height: 1.5px;
  background: currentColor;
  margin: 7px 0;
  transition: transform .35s var(--ease);
}

/* ---------- হোম ---------- */
.hero {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  align-items: center;
  background:
    radial-gradient(ellipse 70% 60% at 85% 20%, rgba(201,164,92,.13), transparent 60%),
    radial-gradient(ellipse 60% 50% at 0% 100%, rgba(201,164,92,.07), transparent 60%),
    var(--ink);
  color: var(--ivory);
  overflow: hidden;
  padding: calc(var(--header-h) + 56px) 0 120px;
}

.hero-frame {
  position: absolute;
  inset: 22px;
  border: 1px solid var(--line-dark);
  pointer-events: none;
}
.hero-frame::before,
.hero-frame::after {
  content: "";
  position: absolute;
  width: 34px;
  height: 34px;
  border-color: var(--gold);
  border-style: solid;
}
.hero-frame::before { top: -1px; left: -1px; border-width: 1px 0 0 1px; }
.hero-frame::after { bottom: -1px; right: -1px; border-width: 0 1px 1px 0; }

.hero-glyph {
  position: absolute;
  right: -2vw;
  bottom: -14vw;
  font-family: var(--font-display);
  font-size: clamp(340px, 60vw, 820px);
  line-height: 1;
  color: rgba(201, 164, 92, .06);
  pointer-events: none;
  user-select: none;
}

.hero-inner { position: relative; }

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  letter-spacing: .06em;
  color: var(--gold);
  margin-bottom: 22px;
}
.ornament { font-size: 9px; }

.hero-name {
  font-size: clamp(56px, 12vw, 140px);
  line-height: 1.08;
  color: var(--ivory);
  margin-bottom: 14px;
}
.hero-name em {
  font-style: normal;
  color: var(--gold);
  display: inline-block;
}

.hero-en {
  font-family: var(--font-latin);
  font-size: clamp(14px, 1.8vw, 17px);
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--muted-dark);
  margin-bottom: 30px;
}

.hero-rule {
  width: 120px;
  height: 1px;
  background: linear-gradient(90deg, var(--gold), transparent);
  margin-bottom: 30px;
}

.hero-tagline {
  max-width: 580px;
  font-size: clamp(17px, 2.2vw, 20px);
  font-weight: 300;
  color: #d9d2c4;
}

.hero-quote {
  max-width: 580px;
  margin: 30px 0 42px;
  padding: 4px 0 4px 22px;
  border-left: 1px solid var(--gold);
}
.hero-quote p {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(19px, 2.6vw, 24px);
  line-height: 1.7;
  color: var(--ivory);
  margin-bottom: 8px;
}
.hero-quote cite {
  font-style: normal;
  font-size: 15px;
  color: var(--gold);
}

.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }

.scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 44px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  font-size: 13px;
  letter-spacing: .1em;
  color: var(--muted-dark);
}
.scroll-cue i {
  width: 1px;
  height: 42px;
  background: linear-gradient(var(--gold), transparent);
  animation: cue 2.2s var(--ease) infinite;
  transform-origin: top;
}
@keyframes cue {
  0% { transform: scaleY(0); opacity: 1; }
  60% { transform: scaleY(1); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0; }
}

/* ---------- সাধারণ সেকশন ---------- */
.section {
  padding: 120px 0;
  scroll-margin-top: 60px;
}
.section-tint { background: var(--ivory-2); }

.section-dark {
  background: var(--ink);
  color: #d9d2c4;
}
.section-dark h2,
.section-dark h3 { color: var(--ivory); }

.section-head { margin-bottom: 56px; max-width: 720px; }
.section-head-center { margin-left: auto; margin-right: auto; text-align: center; }

.section-eyebrow {
  font-size: 15px;
  letter-spacing: .06em;
  color: var(--gold-deep);
  margin-bottom: 10px;
}
.section-dark .section-eyebrow { color: var(--gold); }

.section-head h2 {
  font-size: clamp(38px, 5.6vw, 60px);
  position: relative;
  padding-bottom: 22px;
}
.section-head h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 64px;
  height: 1px;
  background: var(--gold);
}
.section-head-center h2::after { left: 50%; margin-left: -32px; }

.section-sub { margin: 20px 0 0; color: var(--muted); }
.section-dark .section-sub { color: var(--muted-dark); }
.section-sub strong { color: var(--gold-deep); font-weight: 500; }
.section-dark .section-sub strong { color: var(--gold); }

.lead {
  font-family: var(--font-literary);
  font-size: clamp(19px, 2.3vw, 22px);
  line-height: 1.8;
  color: var(--ink);
}

/* ---------- লেখক পরিচিতি ---------- */
.intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 80px;
  align-items: center;
}

.portrait { margin: 0; }

.portrait-frame {
  position: relative;
  padding: 14px;
  border: 1px solid var(--gold);
}
.portrait-frame::before {
  content: "";
  position: absolute;
  inset: -10px 10px 10px -10px;
  border: 1px solid var(--line);
  z-index: -1;
}

.portrait-frame img,
.portrait-placeholder {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.portrait-placeholder {
  background:
    radial-gradient(ellipse at 50% 30%, rgba(201,164,92,.18), transparent 70%),
    var(--ink);
  color: var(--gold);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.portrait-placeholder span { font-family: var(--font-display); font-size: 120px; line-height: 1; }
.portrait-placeholder small { color: var(--muted-dark); font-size: 14px; }

.portrait figcaption {
  margin-top: 18px;
  text-align: center;
  font-family: var(--font-display);
  font-size: 17px;
  color: var(--muted);
}

.facts {
  margin: 34px 0;
  border-top: 1px solid var(--line);
}
.facts div {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
}
.facts dt { color: var(--gold-deep); font-size: 15px; }
.facts dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }

/* ---------- সোশ্যাল ---------- */
.social { display: flex; flex-wrap: wrap; gap: 10px; }
.social a {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--ink);
  background: var(--white);
  transition: border-color .3s var(--ease), color .3s var(--ease), background .3s var(--ease);
}
.social a:hover { border-color: var(--gold); color: var(--gold-deep); }
.social svg { width: 20px; height: 20px; }

.social-dark a { background: transparent; border-color: var(--line-dark); color: var(--ivory); }
.social-dark a:hover { border-color: var(--gold); color: var(--gold); }

/* ---------- জীবনী ---------- */
.bio-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: 72px;
  align-items: start;
}

.bio-text {
  font-family: var(--font-literary);
  font-size: 18px;
  line-height: 2;
  color: var(--text);
}

.dropcap::first-letter {
  float: left;
  font-family: var(--font-display);
  font-size: 4.2em;
  line-height: .9;
  padding: 8px 12px 0 0;
  color: var(--gold-deep);
}

.timeline {
  list-style: none;
  margin: 0;
  padding: 8px 0 0;
  position: relative;
}
.timeline::before {
  content: "";
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 6px;
  width: 1px;
  background: linear-gradient(var(--gold), var(--line));
}
.timeline li {
  position: relative;
  padding: 0 0 34px 38px;
}
.timeline li:last-child { padding-bottom: 0; }
.timeline li::before {
  content: "";
  position: absolute;
  left: 2px;
  top: 10px;
  width: 9px;
  height: 9px;
  background: var(--ivory-2);
  border: 1px solid var(--gold-deep);
  transform: rotate(45deg);
}
.timeline-year {
  display: block;
  font-family: var(--font-display);
  font-size: 22px;
  color: var(--gold-deep);
  line-height: 1.4;
}
.timeline-text { margin: 2px 0 0; color: var(--text); }

/* ---------- বই ---------- */
.book-cover {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 2 / 3;
  padding: 0;
  border: 0;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(201,164,92,.16), transparent 65%),
    var(--ink-3);
  color: var(--gold-soft);
  cursor: pointer;
  font: inherit;
  box-shadow: 0 30px 60px -28px rgba(0,0,0,.9), 0 0 0 1px rgba(201,164,92,.18);
  transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}
.book-cover:hover {
  transform: translateY(-8px);
  box-shadow: 0 40px 70px -28px rgba(0,0,0,.95), 0 0 0 1px rgba(201,164,92,.5);
}
.book-cover img { width: 100%; height: 100%; object-fit: cover; }

/* বইয়ের বাঁধাইয়ের ছায়া */
.book-cover::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 14px;
  background: linear-gradient(90deg, rgba(0,0,0,.35), transparent);
  pointer-events: none;
}

.cover-design {
  position: absolute;
  inset: 16px;
  border: 1px solid rgba(201,164,92,.6);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  text-align: center;
  padding: 28px 16px 20px;
}
.cover-design::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px solid rgba(201,164,92,.22);
  pointer-events: none;
}
.cover-ornament { font-size: 10px; color: var(--gold); letter-spacing: .6em; }
.cover-title {
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1.4;
  color: var(--ivory);
  overflow-wrap: anywhere;
}
.cover-author { font-family: var(--font-display); font-size: 16px; color: var(--gold); }

/* নির্বাচিত (প্রথম) বই */
.featured-book {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 6fr);
  gap: 72px;
  align-items: center;
  padding-bottom: 80px;
  margin-bottom: 72px;
  border-bottom: 1px solid var(--line-dark);
}
.featured-book:empty { display: none; }
.featured-book .book-cover { max-width: 360px; margin: 0 auto; }
.featured-book .cover-title { font-size: 32px; }

.featured-label {
  display: inline-block;
  font-size: 14px;
  letter-spacing: .08em;
  color: var(--ink);
  background: var(--gold);
  padding: 2px 12px;
  margin-bottom: 18px;
}
.featured-book h3 { font-size: clamp(32px, 4.4vw, 48px); margin-bottom: 6px; overflow-wrap: anywhere; }
.featured-genre { color: var(--gold); margin-bottom: 18px; }
.featured-summary {
  font-family: var(--font-literary);
  font-size: 18px;
  line-height: 1.95;
  color: #d9d2c4;
}

.book-details {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 28px 0 32px;
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line-dark);
}
.book-details div { padding: 14px 16px 14px 0; }
.book-details div + div { padding-left: 16px; border-left: 1px solid var(--line-dark); }
.book-details dt { font-size: 13px; color: var(--muted-dark); }
.book-details dd { margin: 0; color: var(--ivory); overflow-wrap: anywhere; }

.book-actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* বাকি বইয়ের তালিকা */
.book-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 56px 36px;
}

.book { display: flex; flex-direction: column; }
.book .book-cover { margin-bottom: 24px; }
.book-genre { font-size: 14px; color: var(--gold); margin-bottom: 4px; }
.book-title { font-size: 23px; margin-bottom: 6px; overflow-wrap: anywhere; }
.book-meta { font-size: 15px; color: var(--muted-dark); margin-bottom: 16px; flex-grow: 1; }
.book-meta .price { color: var(--gold-soft); }
.book .book-actions { display: grid; grid-template-columns: 1fr; gap: 10px; }
.book .btn { min-height: 46px; padding: 8px 18px; font-size: 15px; }

/* ---------- নির্বাচিত লেখা ---------- */
.filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: -16px 0 44px;
}
.filter-btn {
  min-height: 42px;
  padding: 6px 20px;
  font: inherit;
  font-size: 15px;
  color: var(--text);
  background: transparent;
  border: 1px solid var(--line);
  cursor: pointer;
  transition: all .3s var(--ease);
}
.filter-btn:hover { border-color: var(--gold-deep); }
.filter-btn[aria-pressed="true"] { background: var(--ink); color: var(--gold-soft); border-color: var(--ink); }

.writing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 28px;
}

.writing {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 38px 32px 32px;
  background: var(--white);
  border: 1px solid var(--line);
  transition: border-color .4s var(--ease), transform .4s var(--ease), box-shadow .4s var(--ease);
}
.writing::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 32px;
  width: 40px;
  height: 2px;
  background: var(--gold);
}
.writing:hover {
  border-color: rgba(140,106,44,.45);
  transform: translateY(-4px);
  box-shadow: 0 24px 40px -30px rgba(14,13,11,.45);
}
.writing[hidden] { display: none; }

.writing-type {
  font-size: 14px;
  color: var(--gold-deep);
  margin-bottom: 12px;
}
.writing h3 { font-size: 26px; margin-bottom: 12px; overflow-wrap: anywhere; }
.writing-excerpt {
  font-family: var(--font-literary);
  font-size: 16px;
  line-height: 1.95;
  color: var(--muted);
  flex-grow: 1;
}
.writing-excerpt.is-poem { font-style: normal; }
.writing-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding-top: 18px;
  margin-top: 8px;
  border-top: 1px solid var(--line);
  font-size: 14px;
  color: var(--muted);
}

.text-link {
  background: none;
  border: 0;
  padding: 6px 0;
  font: inherit;
  font-size: 15px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  transition: color .3s var(--ease);
}
.text-link:hover { color: var(--gold-deep); }

.empty-note {
  grid-column: 1 / -1;
  text-align: center;
  color: var(--muted);
  padding: 40px 0;
}

/* ---------- ছবি ---------- */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.gallery-item {
  position: relative;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--ink);
  aspect-ratio: 4 / 5;
  overflow: hidden;
  cursor: pointer;
  font: inherit;
  text-align: left;
  color: var(--ivory);
}
.gallery-item:nth-child(6n + 1),
.gallery-item:nth-child(6n + 5) { grid-row: span 2; aspect-ratio: auto; }

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s var(--ease), filter .8s var(--ease);
  filter: saturate(.85);
}
.gallery-item:hover img { transform: scale(1.04); filter: saturate(1); }

.gallery-item::after {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(201,164,92,0);
  transition: border-color .5s var(--ease);
  pointer-events: none;
}
.gallery-item:hover::after { border-color: rgba(201,164,92,.7); }

.gallery-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 40px 18px 16px;
  font-size: 14px;
  background: linear-gradient(transparent, rgba(14,13,11,.85));
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.gallery-item:hover .gallery-caption,
.gallery-item:focus-visible .gallery-caption { opacity: 1; transform: none; }

.gallery-empty {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background:
    radial-gradient(ellipse at 50% 40%, rgba(201,164,92,.12), transparent 70%),
    var(--ink-2);
  color: var(--muted-dark);
  font-size: 14px;
  text-align: center;
  padding: 16px;
}
.gallery-empty svg { width: 30px; height: 30px; color: var(--gold); }

/* ---------- যোগাযোগ ---------- */
.contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 80px;
  align-items: start;
}

.contact-list {
  list-style: none;
  padding: 0;
  margin: 30px 0 34px;
  border-top: 1px solid var(--line);
}
.contact-list li {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}
.contact-list a { color: var(--ink); text-decoration: none; overflow-wrap: anywhere; border-bottom: 1px solid transparent; }
.contact-list a:hover { border-color: var(--gold); }
.contact-label { color: var(--gold-deep); font-size: 15px; }

.contact-form {
  position: relative;
  background: var(--ink);
  color: var(--ivory);
  padding: 44px 38px 36px;
}
.contact-form::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid var(--line-dark);
  pointer-events: none;
}
.form-title {
  font-family: var(--font-display);
  font-size: 28px;
  color: var(--gold-soft);
  margin-bottom: 24px;
}

.field { position: relative; display: block; margin-bottom: 20px; }
.field span { display: block; font-size: 14px; margin-bottom: 6px; color: var(--muted-dark); }

.field input,
.field select,
.field textarea {
  width: 100%;
  font: inherit;
  font-size: 16px; /* মোবাইলে অটো-জুম ঠেকায় */
  color: var(--ivory);
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(201,164,92,.28);
  border-radius: 0;
  padding: 12px 14px;
  transition: border-color .25s, background .25s;
  -webkit-appearance: none;
  appearance: none;
}
.field select {
  background-image: linear-gradient(45deg, transparent 50%, var(--gold) 50%), linear-gradient(135deg, var(--gold) 50%, transparent 50%);
  background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%;
  background-size: 5px 5px;
  background-repeat: no-repeat;
  padding-right: 40px;
}
.field select option { color: var(--ink); background: var(--ivory); }
.field input:focus,
.field select:focus,
.field textarea:focus { outline: none; border-color: var(--gold); background: rgba(201,164,92,.05); }
.field textarea { resize: vertical; min-height: 130px; }

.form-actions { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 8px; }
.contact-form .btn-outline { color: var(--ivory); border-color: rgba(201,164,92,.5); }
.contact-form .btn-outline:hover { background: rgba(201,164,92,.1); color: var(--gold-soft); }

.form-status { position: relative; margin: 14px 0 0; font-size: 15px; color: var(--gold-soft); min-height: 1em; }

/* ---------- ফুটার ---------- */
.site-footer {
  background: var(--ink);
  color: var(--muted-dark);
  padding: 80px 0 30px;
  border-top: 1px solid var(--line-dark);
}

.footer-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-bottom: 44px;
  border-bottom: 1px solid var(--line-dark);
}
.footer-mark {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid var(--gold);
  color: var(--gold);
  font-family: var(--font-display);
  font-size: 28px;
  padding-top: 5px;
  margin-bottom: 18px;
}
.footer-name { font-family: var(--font-display); font-size: 32px; color: var(--ivory); margin-bottom: 0; }
.footer-en {
  font-family: var(--font-latin);
  font-size: 13px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 26px;
}

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  padding-top: 24px;
  font-size: 14px;
}
.footer-bottom p { margin: 0; }
.to-top { text-decoration: none; color: var(--gold); }
.to-top:hover { color: var(--gold-soft); }

/* ---------- ভাসমান WhatsApp ---------- */
.wa-float {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 90;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 54px;
  padding: 0 22px 0 18px;
  background: var(--ink);
  color: var(--gold-soft);
  border: 1px solid var(--gold);
  border-radius: 28px;
  text-decoration: none;
  font-weight: 500;
  box-shadow: 0 16px 34px -12px rgba(0,0,0,.6);
  transition: transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease);
}
.wa-float svg { width: 24px; height: 24px; fill: currentColor; }
.wa-float:hover { transform: translateY(-3px); background: var(--gold); color: var(--ink); }

/* ---------- পপআপ ---------- */
.modal {
  position: fixed;
  inset: 0;
  z-index: 150;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.modal[hidden] { display: none; }

.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(14,13,11,.82);
  opacity: 0;
  transition: opacity .35s var(--ease);
}

.modal-panel {
  position: relative;
  width: 100%;
  max-width: 700px;
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--ivory);
  color: var(--text);
  padding: 54px 48px 44px;
  border-top: 3px solid var(--gold);
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.modal.open .modal-backdrop { opacity: 1; }
.modal.open .modal-panel { opacity: 1; transform: none; }

.modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 44px;
  height: 44px;
  background: none;
  border: 0;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  color: var(--ink);
}
.modal-close:hover { color: var(--gold-deep); }

.modal-kicker { font-size: 14px; color: var(--gold-deep); margin-bottom: 8px; }
.modal-kicker:empty { display: none; }
.modal-title { font-size: clamp(28px, 5vw, 40px); margin-bottom: 6px; padding-right: 30px; overflow-wrap: anywhere; }
.modal-meta { color: var(--muted); font-size: 15px; padding-bottom: 22px; margin-bottom: 26px; border-bottom: 1px solid var(--line); }
.modal-meta:empty { display: none; }

.modal-body {
  font-family: var(--font-literary);
  font-size: 18px;
  line-height: 2;
}
.modal-body.is-poem { white-space: pre-line; text-align: center; }
.modal-body img { width: 100%; height: auto; max-height: 70vh; object-fit: contain; background: var(--ink); }
.modal-actions { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 10px; }
.modal-actions:empty { display: none; }
.modal-actions .btn-gold { background: var(--ink); color: var(--gold-soft); border-color: var(--ink); }
.modal-actions .btn-gold:hover { background: var(--gold); color: var(--ink); border-color: var(--gold); }

/* ছবি দেখার সময় পপআপ */
.modal.is-image .modal-panel { max-width: 960px; background: var(--ink); color: var(--ivory); padding: 54px 20px 22px; }
.modal.is-image .modal-close { color: var(--ivory); }
.modal.is-image .modal-title { font-size: 18px; font-family: var(--font-body); color: var(--muted-dark); margin-top: 14px; text-align: center; }

/* ---------- টোস্ট ---------- */
.toast {
  position: fixed;
  left: 50%;
  bottom: 92px;
  z-index: 200;
  max-width: calc(100% - 40px);
  background: var(--ink);
  color: var(--gold-soft);
  padding: 12px 22px;
  font-size: 15px;
  border: 1px solid var(--line-dark);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 12px);
  transition: opacity .3s var(--ease), transform .3s var(--ease);
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }

/* ---------- স্ক্রল অ্যানিমেশন ---------- */
.js .reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .9s var(--ease), transform .9s var(--ease);
}
.js .reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .reveal { opacity: 1; transform: none; }
}


/* ---------- সম্পূর্ণ গ্রন্থতালিকা ---------- */
.catalog {
  margin-top: 96px;
  padding-top: 64px;
  border-top: 1px solid var(--line-dark);
}
.catalog:empty { display: none; }
.catalog-head { text-align: center; margin-bottom: 48px; }
.catalog-head h3 { font-size: clamp(30px, 4.4vw, 44px); margin-bottom: 8px; }
.catalog-head p { color: var(--muted-dark); margin: 0; }
.catalog-head em { font-style: normal; color: var(--gold); }

.catalog-groups {
  column-count: 3;
  column-gap: 48px;
}
.catalog-group {
  break-inside: avoid;
  margin-bottom: 40px;
}
.catalog-group h4 {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 22px;
  color: var(--gold-soft);
  padding-bottom: 10px;
  margin-bottom: 6px;
  border-bottom: 1px solid var(--gold);
}
.catalog-group h4 span { font-size: 15px; color: var(--muted-dark); }
.catalog-group ol { list-style: none; margin: 0; padding: 0; }
.catalog-group li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(201,164,92,.12);
}
.catalog-title { color: var(--ivory); font-family: var(--font-display); font-size: 18px; line-height: 1.5; }
.catalog-title small { font-family: var(--font-body); font-size: 13px; color: var(--muted-dark); margin-left: 4px; }
.catalog-order {
  flex-shrink: 0;
  font-size: 13px;
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .3s var(--ease);
}
.catalog-order:hover { border-color: var(--gold); }

@media (max-width: 1024px) { .catalog-groups { column-count: 2; } }
@media (max-width: 640px) {
  .catalog { margin-top: 64px; padding-top: 48px; }
  .catalog-groups { column-count: 1; }
  .book-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* =========================================================
   ট্যাবলেট
   ========================================================= */
@media (max-width: 1024px) {
  .site-nav ul { gap: 22px; }
  .intro-grid, .bio-grid, .contact-grid { gap: 52px; }
  .featured-book { gap: 48px; }
}

/* =========================================================
   মোবাইল (Android ফোন)
   ========================================================= */
@media (max-width: 860px) {
  :root { --header-h: 64px; }

  .menu-toggle { display: block; }

  .site-nav {
    position: fixed;
    inset: 0;
    background:
      radial-gradient(ellipse 80% 50% at 100% 0%, rgba(201,164,92,.12), transparent 60%),
      var(--ink);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: calc(var(--header-h) + 24px) 32px 40px;
    opacity: 0;
    visibility: hidden;
    transition: opacity .4s var(--ease), visibility .4s;
    z-index: 101;
    overflow-y: auto;
  }
  .site-nav ul { flex-direction: column; gap: 4px; }
  .site-nav a {
    display: block;
    font-family: var(--font-display);
    font-size: 32px;
    padding: 8px 0;
    color: var(--ivory);
    opacity: 0;
    transform: translateX(-16px);
    transition: opacity .45s var(--ease), transform .45s var(--ease), color .3s;
  }
  .site-nav a::after { display: none; }
  .site-nav a.active { color: var(--gold); }
  .nav-foot {
    display: block;
    margin: 40px 0 0;
    padding-top: 20px;
    border-top: 1px solid var(--line-dark);
    font-family: var(--font-latin);
    font-size: 15px;
    letter-spacing: .12em;
    color: var(--gold);
  }

  body.menu-open .site-nav { opacity: 1; visibility: visible; }
  body.menu-open .site-nav a { opacity: 1; transform: none; }
  body.menu-open .site-nav li:nth-child(2) a { transition-delay: .05s; }
  body.menu-open .site-nav li:nth-child(3) a { transition-delay: .1s; }
  body.menu-open .site-nav li:nth-child(4) a { transition-delay: .15s; }
  body.menu-open .site-nav li:nth-child(5) a { transition-delay: .2s; }
  body.menu-open .site-nav li:nth-child(6) a { transition-delay: .25s; }
  body.menu-open .site-header { background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  body.menu-open .menu-toggle span:nth-child(1) { transform: translateY(4.25px) rotate(45deg); }
  body.menu-open .menu-toggle span:nth-child(2) { transform: translateY(-4.25px) rotate(-45deg); }

  .section { padding: 88px 0; }
  .section-head { margin-bottom: 42px; }

  .intro-grid,
  .bio-grid,
  .contact-grid,
  .featured-book { grid-template-columns: 1fr; }

  .portrait { max-width: 380px; width: 100%; margin: 0 auto; }

  .featured-book { padding-bottom: 60px; margin-bottom: 60px; }
  .featured-book .book-cover { max-width: 300px; }

  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}

@media (max-width: 540px) {
  :root { --gutter: 20px; }

  body { font-size: 16px; }

  .brand-mark { width: 36px; height: 36px; font-size: 20px; }
  .brand-bn { font-size: 18px; }
  .brand-en { font-size: 10px; letter-spacing: .22em; }

  .hero { padding-bottom: 130px; }
  .hero-frame { inset: 12px; }
  .hero-name em { display: block; }
  .hero-actions .btn { flex: 1 1 100%; }

  .section { padding: 72px 0; }

  .facts div,
  .contact-list li { grid-template-columns: 1fr; gap: 2px; }

  .bio-text { font-size: 17px; }

  .book-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .book-details div,
  .book-details div + div { padding: 12px 12px 12px 0; border-left: 0; }
  .book-details div:nth-child(n + 3) { border-top: 1px solid var(--line-dark); }
  .featured-book .book-actions .btn { flex: 1 1 100%; }

  .book-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 16px; }
  .book-title { font-size: 19px; }
  .cover-title { font-size: 19px; }
  .cover-design { inset: 10px; padding: 18px 10px 14px; }
  .book .btn { font-size: 14px; padding: 8px 10px; }

  .writing-grid { grid-template-columns: 1fr; }
  .writing { padding: 32px 22px 26px; }
  .writing::before { left: 22px; }

  .contact-form { padding: 36px 22px 28px; }
  .form-actions { grid-template-columns: 1fr; }

  .modal { padding: 0; align-items: flex-end; }
  .modal-panel {
    max-height: 92vh;
    max-height: 92dvh;
    padding: 50px 22px 34px;
  }
  .modal-body { font-size: 17px; }
  .modal-actions .btn { flex: 1 1 100%; }

  .wa-float { right: 16px; bottom: 16px; width: 56px; height: 56px; padding: 0; justify-content: center; }
  .wa-float span { display: none; }

  .footer-bottom { justify-content: center; text-align: center; }
}

@media (max-width: 360px) {
  .book-grid { grid-template-columns: 1fr; }
  .book .book-cover { max-width: 240px; margin-left: auto; margin-right: auto; }
}

/* =========================================================
   প্রিমিয়াম স্তর — প্রবেশের পর্দা, চলন ও নতুন অংশ
   ========================================================= */

/* প্রবেশের পর্দা */
.preloader {
  position: fixed; inset: 0; z-index: 500;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: radial-gradient(ellipse at 50% 40%, #1d1912, var(--ink) 70%);
  color: var(--ivory);
  transition: opacity .8s var(--ease), visibility .8s;
}
.preloader.done { opacity: 0; visibility: hidden; }
.pl-inner { position: relative; width: 120px; height: 120px; margin-bottom: 26px; }
.pl-ring { position: absolute; inset: 0; transform: rotate(-90deg); }
.pl-ring circle {
  fill: none; stroke: var(--gold); stroke-width: 1.2;
  stroke-dasharray: 340; stroke-dashoffset: 340;
  animation: pl-draw 1.4s var(--ease) forwards;
}
.pl-mark {
  position: absolute; inset: 0; display: grid; place-items: center; padding-top: 8px;
  font-family: var(--font-display); font-size: 58px; color: var(--gold);
  opacity: 0; animation: pl-fade .9s .35s var(--ease) forwards;
}
.pl-name, .pl-tag { margin: 0; opacity: 0; animation: pl-rise .9s var(--ease) forwards; }
.pl-name { font-family: var(--font-display); font-size: 26px; animation-delay: .6s; }
.pl-tag { font-size: 14px; color: var(--muted-dark); letter-spacing: .08em; margin-top: 6px; animation-delay: .8s; }
@keyframes pl-draw { to { stroke-dashoffset: 0; } }
@keyframes pl-fade { to { opacity: 1; } }
@keyframes pl-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ওপরের সোনালি অগ্রগতি রেখা */
.scroll-progress {
  position: fixed; top: 0; left: 0; z-index: 120; height: 2px; width: 100%;
  background: linear-gradient(90deg, var(--gold-deep), var(--gold-soft));
  transform-origin: left; transform: scaleX(0);
  box-shadow: 0 0 10px rgba(201,164,92,.6);
}

/* কম্পিউটারে মাউসের সঙ্গে সোনালি আভা */
.cursor-glow {
  position: fixed; top: 0; left: 0; z-index: 1; pointer-events: none;
  width: 420px; height: 420px; margin: -210px 0 0 -210px; border-radius: 50%;
  background: radial-gradient(circle, rgba(201,164,92,.10), transparent 65%);
  opacity: 0; transition: opacity .5s;
}
body.has-cursor .cursor-glow { opacity: 1; }
@media (hover: none), (max-width: 860px) { .cursor-glow { display: none; } }

/* হিরোর সোনালি ধূলিকণা */
.hero-dust { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }

/* সংখ্যায় সাহিত্যযাত্রা */
.stats {
  background: var(--ink);
  border-top: 1px solid var(--line-dark);
  padding: 64px 0;
}
.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.stat {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  padding: 10px 16px; border-left: 1px solid var(--line-dark);
}
.stat:first-child { border-left: 0; }
.stat-num {
  font-family: var(--font-display);
  font-size: clamp(44px, 6vw, 72px); line-height: 1.1;
  background: linear-gradient(180deg, var(--gold-soft), var(--gold) 55%, var(--gold-deep));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.stat-label { margin-top: 8px; font-size: 15px; color: var(--muted-dark); line-height: 1.5; }
.stat-label small { color: var(--gold); font-size: 12px; letter-spacing: .1em; }

/* বইয়ের নামের চলমান ফিতা */
.marquee {
  overflow: hidden; background: var(--gold); color: var(--ink);
  padding: 14px 0; border-block: 1px solid var(--gold-deep);
}
.marquee-track { display: flex; width: max-content; animation: marquee 70s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-track span {
  font-family: var(--font-display); font-size: 20px; white-space: nowrap; padding: 0 22px;
}
.marquee-track span::after { content: "◆"; font-size: 9px; margin-left: 44px; vertical-align: middle; opacity: .6; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* উক্তির বিরতি */
.interlude {
  position: relative; overflow: hidden; text-align: center;
  padding: 130px 0 120px;
  background:
    radial-gradient(ellipse 60% 70% at 50% 50%, rgba(201,164,92,.14), transparent 70%),
    var(--ink);
  color: var(--ivory);
}
.interlude-mark {
  position: absolute; left: 50%; top: 20px; transform: translateX(-50%);
  font-family: var(--font-latin); font-size: 260px; line-height: 1; color: rgba(201,164,92,.16);
  pointer-events: none;
}
.interlude-quote { position: relative; max-width: 860px; margin: 0 auto; }
.interlude-quote p {
  font-family: var(--font-display); font-style: italic;
  font-size: clamp(26px, 4.2vw, 46px); line-height: 1.6; color: var(--ivory); margin: 0 0 24px;
}
.interlude-quote cite { font-style: normal; color: var(--gold); letter-spacing: .06em; }

/* শিরোনামের নিচের রেখা ধীরে আঁকা হবে */
.js .section-head h2::after { transform: scaleX(0); transform-origin: left; transition: transform 1.1s .3s var(--ease); }
.js .section-head-center h2::after { transform-origin: center; }
.js .section-head.is-visible h2::after { transform: scaleX(1); }

/* ছবি পর্দা সরিয়ে প্রকাশ */
.js .portrait.reveal .portrait-frame,
.js .gallery-item.reveal > * { clip-path: inset(0 0 100% 0); transition: clip-path 1.2s var(--ease); }
.js .portrait.reveal.is-visible .portrait-frame,
.js .gallery-item.reveal.is-visible > * { clip-path: inset(0 0 0 0); }

/* বইয়ের প্রচ্ছদে ত্রিমাত্রিক হেলানো ও ঝিলিক */
.book-cover { transform-style: preserve-3d; will-change: transform; }
.book-cover .shine {
  position: absolute; inset: 0; pointer-events: none; z-index: 2;
  background: radial-gradient(circle at var(--sx, 50%) var(--sy, 0%), rgba(255,240,200,.35), transparent 45%);
  opacity: 0; transition: opacity .4s;
}
.book-cover:hover .shine { opacity: 1; }

/* উপরে যাওয়ার গোল বোতাম */
.to-top-btn {
  position: fixed; left: 20px; bottom: 20px; z-index: 90;
  width: 52px; height: 52px; border-radius: 50%;
  display: grid; place-items: center;
  background: rgba(14,13,11,.88); color: var(--gold-soft); border: 0; cursor: pointer;
  font-size: 18px; opacity: 0; transform: translateY(12px); pointer-events: none;
  transition: opacity .4s var(--ease), transform .4s var(--ease);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.to-top-btn.show { opacity: 1; transform: none; pointer-events: auto; }
.to-top-btn svg { position: absolute; inset: 0; transform: rotate(-90deg); }
.to-top-btn circle { fill: none; stroke-width: 2; }
.tt-track { stroke: rgba(201,164,92,.18); }
.tt-bar { stroke: var(--gold); stroke-dasharray: 132; stroke-dashoffset: 132; transition: stroke-dashoffset .1s linear; }

/* বোতামে সোনালি ঝিলিক */
.btn-gold { position: relative; overflow: hidden; }
.btn-gold::after {
  content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,.55), transparent);
  transform: skewX(-20deg); transition: left .7s var(--ease);
}
.btn-gold:hover::after { left: 130%; }

@media (max-width: 860px) {
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 34px; }
  .stat:nth-child(3) { border-left: 0; }
  .interlude { padding: 100px 0 90px; }
  .interlude-mark { font-size: 180px; }
}
@media (max-width: 540px) {
  .stats { padding: 48px 0; }
  .marquee-track span { font-size: 17px; padding: 0 16px; }
  .marquee-track span::after { margin-left: 32px; }
  .to-top-btn { left: 14px; bottom: 14px; width: 48px; height: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .preloader { display: none; }
  .marquee-track { animation: none; }
  .js .portrait.reveal .portrait-frame, .js .gallery-item.reveal > * { clip-path: none; }
}

/* বইয়ের নমুনা পাঠের শেষ লাইন */
.modal .sample-end { margin-top: 1.4em; opacity: .75; font-style: italic; }
.modal.is-paper .modal-body .sample-text p:first-child::first-letter { float: none; font-size: inherit; line-height: inherit; padding: 0; color: inherit; font-family: inherit; }
.modal:not(.is-paper):not(.is-gold) .modal-actions .btn-outline-gold { color: #5c3f0e; border-color: #8a6a2c; }

/* ---- কীভাবে অর্ডার করবেন ---- */
.how-order { margin: 56px 0 8px; padding: 32px 22px; border: 1px solid rgba(201,164,92,.35); background: rgba(201,164,92,.05); }
.how-order h3 { margin: 0 0 22px; font-size: 1.35rem; color: var(--gold-soft); font-weight: 500; text-align: center; }
.how-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.how-steps li { display: flex; gap: 14px; align-items: flex-start; }
.how-steps li > span { flex: 0 0 34px; height: 34px; border-radius: 50%; border: 1px solid var(--gold); color: var(--gold-soft); display: grid; place-items: center; font-size: 1rem; }
.how-steps p { margin: 0; line-height: 1.75; color: rgba(255,255,255,.82); }
.how-steps strong { color: var(--gold-soft); font-weight: 500; }
.how-pay { margin: 26px 0 0; padding-top: 18px; border-top: 1px solid rgba(201,164,92,.25); text-align: center; color: rgba(255,255,255,.7); }
.how-pay strong { color: var(--gold-soft); font-weight: 500; }
@media (min-width: 820px) {
  .how-order { padding: 40px 48px; }
  .how-steps { grid-template-columns: repeat(4, 1fr); gap: 24px; }
  .how-steps li { flex-direction: column; align-items: center; text-align: center; }
}

/* ---- কার্ট ---- */
.cart-fab{position:fixed;right:14px;bottom:16px;z-index:60;display:flex;align-items:center;gap:8px;padding:12px 16px;border:1px solid #8a6a2c;border-radius:999px;background:#c9a45c;color:#1a1407;font:inherit;font-size:16px;cursor:pointer;box-shadow:0 10px 28px -8px rgba(0,0,0,.55)}
.cart-fab[hidden]{display:none}
.cart-fab svg{width:22px;height:22px}
.cart-fab-count{min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:#1a1407;color:#f2d98e;display:grid;place-items:center;font-size:14px}
.cart-fab.bump{animation:cartbump .45s ease}
@keyframes cartbump{40%{transform:scale(1.14)}}
body.no-scroll .cart-fab{display:none}
.btn svg{width:18px;height:18px;flex:none}
.modal.is-cart .modal-body{white-space:normal}
.cart-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.cart-row{display:grid;grid-template-columns:44px 1fr auto 28px;gap:10px;align-items:center;padding-bottom:12px;border-bottom:1px solid rgba(0,0,0,.12)}
.cart-thumb{width:44px;height:62px;background:#ddd;overflow:hidden;display:block}
.cart-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.cart-info strong{display:block;font-weight:500;line-height:1.35}
.cart-info em{font-style:normal;font-size:.9em;opacity:.75}
.cart-qty{display:flex;align-items:center;gap:6px}
.cart-qty button,.cart-remove{width:30px;height:30px;border:1px solid rgba(0,0,0,.3);background:transparent;color:inherit;font:inherit;font-size:18px;line-height:1;cursor:pointer;border-radius:50%}
.cart-remove{border:0;font-size:22px;opacity:.6;width:28px}
.cart-qty>span{min-width:18px;text-align:center}
.cart-total{display:flex;justify-content:space-between;align-items:baseline;margin:18px 0 4px;font-size:1.1em}
.cart-total strong{font-weight:600}
.cart-note{margin:8px 0 0;font-size:.88em;opacity:.78;line-height:1.7}
.cart-form{display:grid;gap:14px;margin-top:6px}
.cart-form label,.cart-form legend{display:grid;gap:6px;font-size:.92em}
.cart-form input:not([type=radio]),.cart-form textarea{width:100%;padding:11px 12px;border:1px solid rgba(0,0,0,.3);background:rgba(255,255,255,.75);color:#111;font:inherit;font-size:16px;border-radius:2px}
.cart-form textarea{resize:vertical}
.cart-form fieldset{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.cart-form legend{width:100%;padding:0;margin-bottom:6px}
.cart-radio{display:flex!important;align-items:center;gap:8px!important}
.cart-form small{opacity:.7}
.pay-box{margin:6px 0 18px;padding:18px;border:1px dashed #8a6a2c;background:rgba(201,164,92,.14);text-align:center}
.pay-label{margin:0;font-size:.9em;opacity:.8}
.pay-number{margin:8px 0 12px;font-size:1.9rem;letter-spacing:.06em;font-weight:600;font-family:system-ui,sans-serif}
.pay-hint{margin:12px 0 0;font-size:.88em;opacity:.8}
.pay-copy{color:#5c3f0e!important;border-color:#8a6a2c!important;background:rgba(255,255,255,.5)!important}
body.no-scroll .toast{bottom:auto;top:84px}
/* কার্ট বোতাম WhatsApp বোতামের ওপরে */
.cart-fab{right:20px;bottom:88px}
@media (max-width:720px){.cart-fab{right:16px;bottom:84px}}

/* ---- সারসংক্ষেপ বোতাম (লাল জ্বলন্ত বাক্স) ---- */
.synopsis-box{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:12px;padding:14px 16px;border:1px solid #ff4a4a;border-radius:3px;background:linear-gradient(135deg,#3a0507,#6b0b10);color:#ffe3e0;font:inherit;font-size:17px;cursor:pointer;text-align:left;box-shadow:0 0 0 1px rgba(255,74,74,.25),0 0 18px rgba(255,40,40,.55),inset 0 0 14px rgba(255,60,60,.25);animation:synglow 2.4s ease-in-out infinite;transition:transform .25s}
.synopsis-box:hover{transform:translateY(-2px)}
.syn-label{display:flex;align-items:center;gap:10px;color:#fff;text-shadow:0 0 10px rgba(255,80,80,.95),0 0 22px rgba(255,40,40,.7);letter-spacing:.02em}
.syn-dot{width:9px;height:9px;border-radius:50%;background:#ff3b3b;box-shadow:0 0 10px 3px rgba(255,59,59,.9);animation:syndot 1.2s ease-in-out infinite}
.syn-go{font-size:.85em;color:#ffb3ad;white-space:nowrap}
@keyframes synglow{0%,100%{box-shadow:0 0 0 1px rgba(255,74,74,.25),0 0 12px rgba(255,40,40,.4),inset 0 0 10px rgba(255,60,60,.18)}50%{box-shadow:0 0 0 1px rgba(255,90,90,.5),0 0 26px rgba(255,40,40,.85),inset 0 0 18px rgba(255,60,60,.38)}}
@keyframes syndot{50%{opacity:.35;transform:scale(.8)}}
.modal-actions .synopsis-box{margin-top:6px}
@media (prefers-reduced-motion:reduce){.synopsis-box,.syn-dot{animation:none}}


/* ---- লেখকের স্বাক্ষরসহ ---- */
.signed-badge{display:inline-flex;align-items:center;gap:6px;margin:6px 0 10px;padding:4px 11px;border:1px solid rgba(201,164,92,.55);border-radius:999px;color:#e2c98f;font-size:.82rem;letter-spacing:.01em;background:linear-gradient(90deg,rgba(201,164,92,.10),rgba(201,164,92,.02))}
.signed-badge svg{flex:none}
.cart-signed{display:flex;align-items:center;gap:5px;margin-top:3px;color:#8a6a22;font-size:.8rem}
.cart-signed svg{flex:none}
.cart-signed-banner{display:flex;gap:10px;align-items:flex-start;margin:14px 0 6px;padding:11px 13px;border:1px solid rgba(154,116,38,.55);border-radius:10px;background:rgba(201,164,92,.14);color:#2f2718;font-size:.92rem;line-height:1.55}
.cart-signed-banner svg{flex:none;margin-top:4px;color:#8a6a22}
.cart-signed-banner strong{color:#6d4f12}
.link-btn{background:none;border:0;padding:0;color:#8a6a22;text-decoration:underline;font:inherit;cursor:pointer}

/* ======== আলোকচিত্র: কাঠের ফ্রেমে বাঁধা ছবির দেয়াল ======== */
#gallery { background-image: radial-gradient(ellipse at 50% 0%, rgba(150,110,50,.10), transparent 60%), radial-gradient(ellipse at 50% 100%, rgba(80,50,15,.08), transparent 55%); }
.gallery-grid { display: block; column-count: 3; column-gap: 40px; padding: 18px 4px 0; }
.gallery-item {
  position: relative; display: block; width: 100%; margin: 0 0 46px; padding: 0;
  aspect-ratio: auto !important; grid-row: auto !important; grid-column: auto !important;
  break-inside: avoid; -webkit-column-break-inside: avoid; overflow: visible; background: none;
  border: 0; cursor: pointer; text-align: center; color: #3a2610;
  transform: rotate(var(--tilt, 0deg)); transform-origin: 50% 0;
  transition: transform .7s var(--ease);
}
.gallery-item:nth-child(3n + 1) { --tilt: -.8deg; }
.gallery-item:nth-child(3n + 2) { --tilt: .6deg; }
.gallery-item:nth-child(3n) { --tilt: -.4deg; }
.gallery-item:hover, .gallery-item:focus-visible { transform: rotate(0deg) translateY(-6px); }

/* ঝোলানোর পেরেক ও সুতো */
.gallery-item::before {
  content: ""; position: absolute; z-index: 4; top: -16px; left: 50%; width: 10px; height: 10px; margin-left: -5px;
  border-radius: 50%; background: radial-gradient(circle at 35% 30%, #f7e6ac, #a67e2c 58%, #5a4010);
  box-shadow: 0 2px 3px rgba(0,0,0,.55);
}
.gallery-item::after {
  content: ""; position: absolute; inset: auto; z-index: 3; top: -11px; left: 22%; width: 56%; height: 24px; border: 0;
  background:
    linear-gradient(to bottom right, transparent calc(50% - .7px), rgba(140,105,50,.75) 50%, transparent calc(50% + .7px)) left top / 50% 100% no-repeat,
    linear-gradient(to bottom left, transparent calc(50% - .7px), rgba(140,105,50,.75) 50%, transparent calc(50% + .7px)) right top / 50% 100% no-repeat;
  pointer-events: none;
}

/* কাঠের ফ্রেম: চার কোণে কোনাকুনি জোড় */
.frame-wood {
  position: relative; display: block; border: 16px solid; border-color: #b3834a #6e4423 #4d2c14 #8f5f30;
  border-radius: 3px; background: #2b1a0b;
  box-shadow: 0 0 0 1px #2a1708, 0 26px 36px -16px rgba(40,22,5,.75), 0 8px 12px -6px rgba(40,22,5,.55);
}
.frame-wood::before { /* কাঠের শিরা + আলোর ঝিলিক */
  content: ""; position: absolute; z-index: 2; inset: -16px; border-radius: 3px; pointer-events: none;
  background:
    linear-gradient(135deg, rgba(255,240,205,.30), transparent 28%, transparent 72%, rgba(0,0,0,.28)),
    repeating-linear-gradient(88deg, rgba(0,0,0,.11) 0 1px, transparent 1px 5px),
    repeating-linear-gradient(1.5deg, rgba(255,230,185,.07) 0 2px, transparent 2px 9px);
  -webkit-mask: linear-gradient(#000 0 0) padding-box exclude, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) exclude, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
.frame-wood::after { /* ভেতরের সোনালি কাঠের ধার */
  content: ""; position: absolute; z-index: 2; inset: 0; pointer-events: none;
  box-shadow: inset 0 0 0 2px rgba(222,184,112,.55), inset 0 6px 14px rgba(0,0,0,.55);
}
.frame-mat { display: block; padding: 10px; background: linear-gradient(145deg, #f3ead6, #e6d9bd); box-shadow: inset 0 0 0 1px rgba(110,75,25,.35), inset 0 3px 10px rgba(70,45,10,.4); }
.frame-mat img { display: block; width: 100%; height: auto; object-fit: cover; filter: saturate(.96) contrast(1.02); box-shadow: 0 0 0 1px rgba(60,40,10,.55); transition: filter .6s var(--ease); }
.gallery-item:hover .frame-mat img { filter: saturate(1.08) contrast(1.04); transform: none; }

/* পিতলের নামফলক */
.frame-plaque {
  position: relative; display: block; width: fit-content; max-width: 94%; margin: 18px auto 0; padding: 8px 18px 9px;
  background: linear-gradient(180deg, #e6cd8c, #bf9a4c 55%, #d8bb75); color: #2d1f08; border-radius: 2px;
  box-shadow: inset 0 0 0 1px rgba(255,244,205,.6), inset 0 -2px 3px rgba(110,80,20,.35), 0 5px 10px -4px rgba(40,22,5,.6);
  font-family: var(--font-display); font-size: 16px; line-height: 1.45; letter-spacing: .01em;
}
.frame-plaque small { display: block; margin-top: 2px; font-family: var(--font-body); font-size: 12.5px; letter-spacing: 0; color: #4a3510; opacity: .9; }

@media (max-width: 860px) {
  .gallery-grid { column-count: 2; column-gap: 22px; }
  .gallery-item { margin-bottom: 38px; }
  .frame-wood { border-width: 11px; }
  .frame-wood::before { inset: -11px; }
  .frame-mat { padding: 6px; }
  .frame-plaque { margin-top: 14px; padding: 6px 11px 7px; font-size: 13.5px; }
  .frame-plaque small { font-size: 11px; }
}
@media (hover: none) { .gallery-item:hover { transform: rotate(var(--tilt, 0deg)); } }

/* বড় করে দেখার সময়ও কাঠের ফ্রেমে */
.modal.is-image .modal-body img {
  border: 14px solid; border-color: #b3834a #6e4423 #4d2c14 #8f5f30; padding: 9px; background: #efe4cc; border-radius: 3px;
  box-shadow: 0 0 0 1px #2a1708, 0 20px 40px -14px rgba(0,0,0,.8), inset 0 0 0 1px rgba(110,75,25,.4);
  box-sizing: border-box; max-width: 100%; height: auto;
}
.modal.is-image .modal-meta { text-align: center; color: var(--gold); border-bottom: 0; margin-top: -4px; }

/* =========================================================
   শুরুর ভাসমান পোস্টার (intro)
   ========================================================= */
.ak-intro{position:fixed;inset:0;z-index:400;display:none;flex-direction:column;align-items:center;justify-content:space-between;
  padding:max(14px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));
  background:#080706;color:#f7f3ea;overflow:hidden}
html.ak-intro-on .ak-intro{display:flex}
html.ak-intro-on, html.ak-intro-on body{overflow:hidden}
.ak-intro.is-leaving{opacity:0;transition:opacity .55s ease;pointer-events:none}
.ak-intro-stage,.ak-intro-info,.ak-intro-tag{opacity:0;transition:opacity .9s ease}
.ak-intro.is-ready .ak-intro-stage,.ak-intro.is-ready .ak-intro-info,.ak-intro.is-ready .ak-intro-tag{opacity:1}
.ak-intro-glow{position:absolute;inset:-20%;pointer-events:none;transition:background 1.6s ease;
  background:radial-gradient(60% 50% at 50% 46%,rgba(201,164,92,.38),rgba(8,7,6,0) 70%)}
.ak-intro::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 45%,rgba(0,0,0,0) 45%,rgba(0,0,0,.72) 100%)}
.ak-intro-drift{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.ak-intro-drift img{position:absolute;bottom:-30%;width:var(--w,84px);left:var(--x,10%);opacity:0;border-radius:3px;
  filter:blur(1.2px) saturate(.9);box-shadow:0 14px 30px -10px rgba(0,0,0,.8);
  animation:akDrift var(--t,26s) linear var(--dl,0s) infinite}
@keyframes akDrift{0%{transform:translate3d(0,0,0) rotate(var(--r0,-6deg));opacity:0}
  12%{opacity:.26}85%{opacity:.26}100%{transform:translate3d(var(--sx,24px),-150vh,0) rotate(var(--r1,7deg));opacity:0}}

.ak-intro-close{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px;z-index:5;width:46px;height:46px;border-radius:50%;
  display:grid;place-items:center;border:1px solid rgba(247,243,234,.35);background:rgba(8,7,6,.55);color:#f7f3ea;cursor:pointer;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s,transform .2s}
.ak-intro-close:hover,.ak-intro-close:focus-visible{background:rgba(201,164,92,.9);color:#1a1407;transform:scale(1.06);outline:none}

.ak-intro-tag{position:relative;z-index:2;margin:54px 56px 0;text-align:center;font-family:var(--font-display,serif);
  font-size:clamp(17px,4.6vw,26px);line-height:1.5;color:#e9d9b0;letter-spacing:.01em;min-height:3em}
.ak-intro-tag .w{display:inline-block;opacity:0;transform:translateY(8px);filter:blur(4px);white-space:pre}
.ak-intro-tag.run .w{animation:akWord 4.7s ease both;animation-delay:calc(.25s + var(--i)*.22s)}
@keyframes akWord{0%{opacity:0;transform:translateY(8px);filter:blur(4px)}
  16%,78%{opacity:1;transform:none;filter:none}
  100%{opacity:0;transform:translateY(-6px);filter:blur(3px)}}

.ak-intro-stage{position:relative;z-index:2;flex:1 1 auto;width:100%;min-height:0;margin:8px 0;perspective:1100px}
.ak-slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;
  opacity:0;transform:translate3d(0,46px,0) scale(.9) rotate(-3deg);transition:opacity 1.1s ease,transform 1.5s cubic-bezier(.2,.7,.2,1)}
.ak-slide.is-on{opacity:1;transform:none}
.ak-slide.is-out{opacity:0;transform:translate3d(-26px,-60px,0) scale(1.04) rotate(2.5deg);transition:opacity .9s ease,transform 1.2s ease-in}
.ak-poster{position:relative;height:100%;max-height:100%;aspect-ratio:var(--ar,.63);max-width:86vw;
  animation:akFloat 6.2s ease-in-out infinite;transform-style:preserve-3d}
.ak-poster img{display:block;height:100%;width:auto;max-width:100%;object-fit:contain;border-radius:3px;
  box-shadow:0 30px 60px -18px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.08),0 0 60px -6px var(--glow,rgba(201,164,92,.45))}
.ak-poster::after{content:"";position:absolute;inset:0;border-radius:3px;pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,0) 35%,rgba(255,255,255,.16) 50%,rgba(255,255,255,0) 65%);
  background-size:260% 100%;background-position:130% 0;animation:akShine 5s ease-in-out 1.2s infinite}
@keyframes akFloat{0%,100%{transform:translate3d(0,0,0) rotateY(-5deg) rotateX(1.5deg)}
  50%{transform:translate3d(0,-14px,0) rotateY(5deg) rotateX(-1.5deg)}}
@keyframes akShine{0%,45%{background-position:130% 0}85%,100%{background-position:-30% 0}}

.ak-intro-info{position:relative;z-index:3;width:100%;max-width:520px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.ak-intro-meta{min-height:3.6em;display:flex;flex-direction:column;gap:3px;transition:opacity .6s ease}
.ak-intro-meta.is-fade{opacity:0}
.ak-intro-meta strong{font-family:var(--font-display,serif);font-weight:400;font-size:clamp(22px,6.2vw,32px);line-height:1.25;color:#fff}
.ak-intro-meta span{font-size:15px;color:#cdbf9d;letter-spacing:.01em}
.ak-intro-cta{appearance:none;border:1px solid #8a6a2c;background:linear-gradient(180deg,#d8b96f,#bf9a4c);color:#1a1407;
  font:inherit;font-weight:600;font-size:18px;padding:14px 34px;border-radius:999px;cursor:pointer;
  box-shadow:0 14px 34px -10px rgba(201,164,92,.65);animation:akPulse 2.6s ease-in-out infinite;transition:transform .2s}
.ak-intro-cta:hover,.ak-intro-cta:focus-visible{transform:translateY(-2px);outline:none}
@keyframes akPulse{0%,100%{box-shadow:0 14px 34px -10px rgba(201,164,92,.55),0 0 0 0 rgba(201,164,92,.35)}
  50%{box-shadow:0 14px 34px -10px rgba(201,164,92,.75),0 0 0 9px rgba(201,164,92,0)}}
.ak-intro-ticks{display:flex;gap:6px;margin-top:2px}
.ak-intro-ticks button{appearance:none;border:0;padding:0;width:20px;height:18px;background:none;cursor:pointer;position:relative}
.ak-intro-ticks button::before{content:"";position:absolute;left:0;right:0;top:8px;height:2px;border-radius:2px;background:rgba(247,243,234,.22)}
.ak-intro-ticks button i{position:absolute;left:0;top:8px;height:2px;border-radius:2px;background:#d8b96f;width:0}
.ak-intro-ticks button.is-done i{width:100%}
.ak-intro-ticks button.is-cur i{animation:akTick var(--dur,4800ms) linear forwards}
@keyframes akTick{from{width:0}to{width:100%}}
@media (max-height:640px){.ak-intro-tag{margin-top:46px;min-height:2.6em}.ak-intro-meta{min-height:3em}.ak-intro-cta{padding:11px 28px;font-size:16px}}
@media (prefers-reduced-motion:reduce){
  .ak-poster,.ak-poster::after,.ak-intro-drift img,.ak-intro-cta{animation:none}
  .ak-slide,.ak-slide.is-out{transform:none}
  .ak-intro-tag .w{filter:none;transform:none}
}
.footer-privacy{font-size:13px;opacity:.6;max-width:46ch;line-height:1.6}

.footer-domains{font-size:13px;opacity:.7;margin:10px 0 0;letter-spacing:.02em}
.footer-domains a{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* ---------- বই খোঁজা ও বাছাই ---------- */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.book-tools{margin:0 0 36px}
.book-search{display:block;max-width:560px;margin:0 auto 18px}
.book-search input{width:100%;box-sizing:border-box;padding:14px 18px;border:1px solid rgba(201,164,92,.45);background:rgba(255,255,255,.04);color:var(--ivory);font:inherit;font-size:16px;border-radius:999px;outline:none;transition:border-color .2s,background .2s}
.book-search input::placeholder{color:var(--muted-dark)}
.book-search input:focus{border-color:var(--gold);background:rgba(201,164,92,.08)}
.book-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.chip{font:inherit;font-size:14px;padding:8px 16px;border-radius:999px;border:1px solid rgba(201,164,92,.4);background:transparent;color:var(--gold-soft);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.chip span{opacity:.65;font-size:12px;margin-left:4px}
.chip:hover{border-color:var(--gold)}
.chip.is-on{background:var(--gold);color:#1a1508;border-color:var(--gold)}
.book-count{text-align:center;margin:16px 0 0;color:var(--muted-dark);font-size:14px;min-height:1px}
.chip-clear{font:inherit;background:none;border:0;color:var(--gold);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0}
.book[hidden],.featured-book[hidden]{display:none!important}

/* ---------- কার্ট: স্বাক্ষর অংশ ---------- */
.cart-form fieldset.cart-sign{display:grid;gap:12px;border:1px dashed rgba(140,106,44,.6);border-radius:8px;padding:12px 14px 14px;margin:4px 0 2px;min-width:0;box-sizing:border-box}
.cart-form fieldset.cart-sign legend{display:block;width:auto;padding:0 8px;margin:0;color:#8c6a2c;font-size:15px}
.cart-form fieldset.cart-sign legend small{display:inline;margin-left:4px;opacity:.7;font-size:12px}
.cart-form fieldset.cart-sign label{display:grid;gap:6px;width:100%;margin:0}
.cart-form fieldset.cart-sign input{width:100%;box-sizing:border-box}

/* ---------- বইয়ের "নতুন" ব্যাজ ---------- */
.cover-badge{position:absolute;top:12px;right:0;z-index:2;padding:6px 14px 6px 16px;background:var(--gold);color:#1a1508;font-size:13px;font-weight:600;letter-spacing:.04em;line-height:1;box-shadow:0 6px 14px -6px rgba(0,0,0,.7);clip-path:polygon(10px 0,100% 0,100% 100%,10px 100%,0 50%)}

/* ---------- নতুন বইয়ের খবর ---------- */
.subscribe{background:var(--ink-2);border-top:1px solid var(--line-dark);padding:64px 0;text-align:center;color:var(--ivory)}
.subscribe[hidden]{display:none}
.subscribe h2{margin:6px 0 12px;font-weight:400;color:var(--ivory)}
.subscribe-sub{color:var(--muted-dark);margin:0 auto 24px;max-width:46ch}
.subscribe-form{display:flex;gap:10px;max-width:520px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.subscribe-form input{flex:1 1 240px;min-width:0;box-sizing:border-box;padding:14px 18px;border:1px solid rgba(201,164,92,.5);background:rgba(255,255,255,.05);color:var(--ivory);font:inherit;font-size:16px;border-radius:999px;outline:none}
.subscribe-form input:focus{border-color:var(--gold)}
.subscribe-form .btn{flex:0 0 auto}
.subscribe-note{margin:16px auto 0;font-size:13px;color:var(--muted-dark);max-width:52ch;line-height:1.7}
.subscribe-ok{margin:0;color:var(--gold-soft);font-size:18px}

/* ফুটারের QR কোড */
.footer-qr{display:flex;flex-direction:column;align-items:center;gap:10px;margin:22px auto 6px}
.footer-qr img{display:block;width:132px;height:132px;background:#fff;padding:8px;border-radius:10px}
.footer-qr p{margin:0;font-size:13px;line-height:1.7;color:var(--ivory-2);opacity:.85;text-align:center}
.footer-qr p a{color:var(--gold)}

/* ইবুক শেলফ */
.ebook-shelf{margin:56px auto 8px;padding:34px 22px;border:1px solid rgba(201,164,92,.3);border-radius:14px;background:rgba(201,164,92,.05)}
.ebook-head{text-align:center;max-width:560px;margin:0 auto 26px}
.ebook-head h3{margin:6px 0 8px;color:var(--ivory)}
.ebook-head p:last-child{color:var(--ivory-2);opacity:.85;font-size:15px;line-height:1.8;margin:0}
.ebook-list{display:grid;gap:26px;justify-content:center}
.ebook-card{display:flex;gap:22px;align-items:center;max-width:560px}
.ebook-card .book-cover{flex:0 0 140px;width:140px;position:relative}
.ebook-info{min-width:0}
.ebook-info .book-title{margin:4px 0}
@media (max-width:540px){.ebook-card{flex-direction:column;text-align:center}.ebook-card .book-actions{justify-content:center}}
.cart-ebooks{margin-top:22px;padding-top:16px;border-top:1px dashed rgba(122,84,16,.45)}
.cart-ebooks h4{margin:0 0 4px;font-size:17px}
.cart-ebooks>p{margin:0 0 12px;font-size:14px;opacity:.8;line-height:1.7}
.cart-ebook-row{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.cart-ebook-row .cart-info{flex:1;min-width:0}
.cart-ebook-row .btn{padding:8px 16px;font-size:14px;white-space:nowrap}
.ebook-info .book-title{color:var(--ivory)}.ebook-info .book-meta{color:var(--ivory-2);opacity:.85}
.ebook-card .book-cover{aspect-ratio:2/3;height:auto}.ebook-card .book-cover img{width:100%;height:100%;object-fit:cover}
@media (max-width:540px){.ebook-card .book-cover{flex:none}}
.ebook-card[hidden]{display:none}

/* গ্রন্থতালিকার কার্ট/ইবুক বোতাম */
button.catalog-order{font-family:inherit;background:none;border:0;border-bottom:1px solid transparent;padding:0;cursor:pointer}
.catalog-buy{font-weight:600;white-space:nowrap}

.catalog-out{color:var(--ivory-2);opacity:.55;border-bottom:0;white-space:nowrap}

/* বই জংশন: স্টেশনের নামফলক। শুধু বই-প্রথম প্রবেশে দেখায় */
.bj-brand{display:none}
html.books-first .bj-brand{display:flex;flex-direction:column;align-items:center;margin:0 auto 38px}
.bj-board{border:3px solid var(--gold);border-radius:14px;padding:16px 34px 10px;text-align:center;background:#171511;box-shadow:inset 0 0 0 3px #171511,inset 0 0 0 5px rgba(201,164,92,.5)}
.bj-title{font-family:var(--font-display);font-size:clamp(46px,13vw,76px);line-height:1.15}
.bj-r{color:#e5484d}.bj-g{color:#3dbb72}
.bj-row{display:flex;justify-content:space-between;align-items:center;gap:18px;color:var(--gold);font-size:12px;letter-spacing:.34em;margin-top:2px}
.bj-row i{font-style:normal;font-size:22px;letter-spacing:0}
.bj-legs{display:flex;gap:min(46vw,190px)}
.bj-legs b{display:block;width:7px;height:30px;background:#6b5420}

.quiz-cta{text-align:center;margin:0 0 22px}
.quiz-opts{display:grid;gap:10px}
.quiz-opt{font:inherit;text-align:left;padding:14px 16px;border:1px solid rgba(140,106,44,.55);border-radius:10px;background:transparent;color:inherit;cursor:pointer;font-size:1.02rem}
.quiz-opt:hover,.quiz-opt:focus-visible{background:rgba(201,164,92,.2);outline:none}
.quiz-result{text-align:center}
.quiz-result img{display:block;margin:0 auto;width:min(190px,60%);height:auto;border-radius:4px;box-shadow:0 20px 40px -20px rgba(0,0,0,.7)}
.quiz-result p{margin:12px 0 0;opacity:.8}
.cart-form fieldset.cart-gift .cart-radio{display:flex;align-items:center;gap:8px}

.book-sets{display:grid;gap:18px;margin:0 0 26px}
.set-card{border:1px solid rgba(201,164,92,.5);border-radius:14px;padding:22px 18px;text-align:center;background:linear-gradient(160deg,#1d1a14,#2a2216)}
.set-eyebrow{margin:0 0 4px;color:var(--gold);letter-spacing:.12em;font-size:14px}
.set-card h3{margin:0 0 16px;font-family:var(--font-display);font-weight:400;font-size:clamp(26px,6vw,34px);color:#fffdf8}
.set-covers{display:flex;justify-content:center;gap:10px}
.set-covers a{flex:0 1 31%;max-width:150px}
.set-covers img{width:100%;height:auto;display:block;border-radius:3px;box-shadow:0 16px 30px -16px #000}
.set-names{margin:12px 0 4px;opacity:.85;font-size:15px}
.set-price{margin:4px 0 10px;font-size:18px}
.set-price s{opacity:.55;margin-right:8px}.set-price strong{color:var(--gold);font-size:26px;font-weight:600}
.set-perks{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.set-perks li{border:1px solid rgba(201,164,92,.45);border-radius:999px;padding:4px 12px;font-size:14px;color:#e2c98f}
.cart-setnote{margin:10px 0;padding:10px 12px;border-radius:8px;background:rgba(201,164,92,.18);font-size:.92rem;line-height:1.55}
.quote-cards{margin:34px 0 8px;text-align:center}
.quote-cards h3{font-family:var(--font-display);font-weight:400;font-size:24px;margin:0 0 16px}
.quote-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.quote-card{margin:0;padding:34px 22px 24px;border-radius:12px;border:1px solid rgba(201,164,92,.35)}
.quote-card blockquote{margin:0 0 14px;font-family:var(--font-literary);font-size:clamp(21px,5vw,26px);line-height:1.9}
.quote-card figcaption{margin-bottom:18px;opacity:.8;font-size:15px}

.set-price{display:flex;align-items:baseline;justify-content:center;gap:14px;flex-wrap:wrap}
.set-price s{opacity:1;color:#ff8a80;font-size:22px;text-decoration:line-through;text-decoration-color:#e53935;text-decoration-thickness:3px;margin:0}
.set-price strong{font-size:34px;text-shadow:0 0 22px rgba(201,164,92,.35)}
.set-save{margin:0 0 14px}
.set-save span{display:inline-block;background:linear-gradient(135deg,#e53935,#b71c1c);color:#fff;font-weight:600;font-size:16px;padding:6px 18px;border-radius:999px;box-shadow:0 6px 18px -6px rgba(229,57,53,.7)}

.install-bar{position:fixed;left:12px;right:12px;top:12px;z-index:9999;max-width:520px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;background:#f7f3ea;color:#1b1710;box-shadow:0 18px 40px -12px rgba(0,0,0,.65),0 0 0 1px rgba(201,164,92,.5);transform:translateY(-140%);transition:transform .35s ease}
.install-bar.open{transform:none}
.install-bar img{width:48px;height:48px;border-radius:12px;flex:none}
.install-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.install-text strong{font-size:16px}
.install-text span{font-size:13px;opacity:.75}
.install-go{font:inherit;font-size:15px;font-weight:600;border:0;border-radius:999px;padding:9px 18px;background:#1b1710;color:#e8c97a;cursor:pointer;flex:none}
.install-x{font:inherit;font-size:24px;line-height:1;border:0;background:transparent;color:#6b624f;cursor:pointer;padding:4px 6px;flex:none}
.ak-alert{position:fixed;left:12px;right:12px;top:10px;z-index:9999;padding:6px;border-radius:12px;background:#c9a45c;color:#1a1508;font-weight:600;font-size:15.5px;line-height:1.5;text-align:center;box-shadow:0 8px 28px rgba(0,0,0,.5)}
.ak-alert a{display:block;padding:8px 10px;color:inherit;text-decoration:none}
.ak-alert[hidden]{display:none}
