/* ============================================================
   blog-cozy.css — cozy handmade repaint of the blog index
   Pairs with redesign/blog/index.html
   Relies on manishelf-cozy.css for the global palette/topbar/footer
   ============================================================ */

/* ---------- Masthead ---------- */

body.blog-page .blog-masthead {
  padding: 8px 0 24px !important;
  border-bottom: 1px dashed rgba(107, 74, 138, 0.22) !important;
  margin-bottom: clamp(32px, 5vh, 48px) !important;
  background: transparent !important;
}

body.blog-page .mast-lead {
  font-size: clamp(1.6rem, 3vw, 2.6rem) !important;
  line-height: 1.15 !important;
  color: var(--plum, #6b4a8a) !important;
  margin: 0 0 14px !important;
  max-width: none !important;
  white-space: nowrap !important;
}
body.blog-page .mast-lead em {
  font-family: inherit !important;
  font-weight: inherit !important;
  font-style: normal !important;
  color: var(--ember, #c9765a) !important;
  background: none !important;
  padding: 0 !important;
}

body.blog-page .mast-meta {
  font-family: 'Nunito', sans-serif !important;
  font-size: 0.82rem !important;
  letter-spacing: 0.02em !important;
  color: var(--ink-soft, #4a3a62) !important;
}
body.blog-page .mast-meta .meta-label {
  color: var(--ink-faint, #8a7a9e) !important;
  margin-right: 6px !important;
}

/* ---------- Featured entry — notebook sheet ---------- */

body.blog-page .entry-featured {
  background:
    repeating-linear-gradient(to bottom, transparent 0, transparent 31px,
      rgba(107, 74, 138, 0.06) 31px, rgba(107, 74, 138, 0.06) 32px),
    radial-gradient(ellipse at 50% 30%, #fdf8e6 0%, #f8efd6 65%, #f2e6c7 100%) !important;
  border: 1px solid rgba(107, 74, 138, 0.10) !important;
  border-radius: 4px !important;
  padding: clamp(28px, 4vw, 44px) !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.5) inset,
    0 2px 8px rgba(42, 31, 61, 0.10),
    0 22px 54px -14px rgba(42, 31, 61, 0.28) !important;
  margin: 0 0 clamp(24px, 3vw, 36px) !important;
  position: relative !important;
  transform: rotate(-0.6deg);
}
/* Little washi-tape at the top */
body.blog-page .entry-featured::before {
  content: "";
  position: absolute;
  top: -14px;
  left: clamp(30px, 10%, 100px);
  width: 104px;
  height: 26px;
  background: linear-gradient(180deg,
    rgba(232, 152, 120, 0.92),
    rgba(201, 118, 90, 0.78));
  box-shadow: 0 3px 7px rgba(42, 31, 61, 0.16);
  transform: rotate(-6deg);
  border-left: 1px dashed rgba(255, 255, 255, 0.45);
  border-right: 1px dashed rgba(255, 255, 255, 0.45);
}

body.blog-page .entry-featured .entry-link {
  display: block !important;
  text-decoration: none !important;
  color: inherit !important;
}

body.blog-page .entry-featured .entry-title {
  font-size: clamp(1.4rem, 2.2vw, 1.9rem) !important;
  line-height: 1.2 !important;
  color: var(--plum, #6b4a8a) !important;
  margin: 10px 0 14px !important;
}
body.blog-page .entry-featured .entry-title em {
  font-style: normal !important;
  color: var(--ember, #c9765a) !important;
}
body.blog-page .entry-featured .entry-excerpt {
  font-family: 'Nunito', sans-serif !important;
  font-size: 1.05rem !important;
  line-height: 1.6 !important;
  color: var(--ink-soft, #4a3a62) !important;
  margin: 0 0 16px !important;
  max-width: 60ch !important;
}
body.blog-page .entry-featured .entry-cta {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: 'Caveat', 'Bradley Hand', cursive !important;
  font-weight: 700 !important;
  color: var(--ember, #c9765a) !important;
  font-size: 1.25rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  border: 0 !important;
  padding: 0 !important;
  background: none !important;
  width: 100% !important;
  text-align: right !important;
}
body.blog-page .entry-featured .entry-link:hover .entry-cta {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---------- Entry grid (smaller cards) ---------- */

body.blog-page .entry-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
  gap: clamp(18px, 2.5vw, 28px) !important;
  margin: 0 !important;
}

body.blog-page .entry-card {
  background:
    repeating-linear-gradient(to bottom, transparent 0, transparent 31px,
      rgba(107, 74, 138, 0.05) 31px, rgba(107, 74, 138, 0.05) 32px),
    #fbf4df !important;
  border: 1px solid rgba(107, 74, 138, 0.14) !important;
  border-radius: 4px !important;
  padding: clamp(20px, 2.4vw, 26px) !important;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.5) inset,
    0 2px 8px rgba(42, 31, 61, 0.08),
    0 14px 28px -14px rgba(42, 31, 61, 0.16) !important;
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s !important;
}
body.blog-page .entry-card:nth-child(odd) { transform: rotate(-0.4deg); }
body.blog-page .entry-card:nth-child(even) { transform: rotate(0.5deg); }

/* Thumbtack pin at the top-center of each card */
body.blog-page .entry-card {
  position: relative !important;
  padding-top: clamp(32px, 4vw, 42px) !important;
}
body.blog-page .entry-card::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #f2a188 0%, #c9765a 55%, #8a4a36 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.4) inset,
    0 2px 4px rgba(42, 31, 61, 0.35),
    0 0 0 2px rgba(42, 31, 61, 0.06);
  z-index: 3;
}
body.blog-page .entry-card::after {
  content: "";
  position: absolute;
  top: 22px;
  left: 50%;
  transform: translateX(-50%);
  width: 3px;
  height: 5px;
  background: linear-gradient(to bottom,
    rgba(42, 31, 61, 0.35),
    rgba(42, 31, 61, 0.12));
  border-radius: 0 0 2px 2px;
  z-index: 2;
}
/* Peeled-bottom cast shadow on the featured article only */
body.blog-page .entry-featured {
  position: relative !important;
}
body.blog-page .entry-featured::after {
  content: "" !important;
  position: absolute !important;
  left: 8% !important;
  right: 8% !important;
  bottom: -22px !important;
  height: 30px !important;
  background: radial-gradient(ellipse at center top,
    rgba(42, 31, 61, 0.30) 0%,
    rgba(42, 31, 61, 0.16) 40%,
    transparent 75%) !important;
  filter: blur(6px) !important;
  pointer-events: none !important;
  z-index: -1 !important;
  border-radius: 50% !important;
}
/* Alternate pin colors to echo the sticky palette */
body.blog-page .entry-grid .entry-card:nth-child(4n+1)::before {
  background: radial-gradient(circle at 35% 30%, #f2a188 0%, #c9765a 55%, #8a4a36 100%);
}
body.blog-page .entry-grid .entry-card:nth-child(4n+2)::before {
  background: radial-gradient(circle at 35% 30%, #e4cc82 0%, #b89a46 55%, #7a6428 100%);
}
body.blog-page .entry-grid .entry-card:nth-child(4n+3)::before {
  background: radial-gradient(circle at 35% 30%, #b89fd9 0%, #8569b0 55%, #4e3972 100%);
}
body.blog-page .entry-grid .entry-card:nth-child(4n+4)::before {
  background: radial-gradient(circle at 35% 30%, #96c6a5 0%, #5d9274 55%, #2f5a42 100%);
}

body.blog-page .entry-card:hover {
  transform: translateY(-3px) rotate(0deg);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.55) inset,
    0 4px 12px rgba(42, 31, 61, 0.10),
    0 20px 36px -14px rgba(42, 31, 61, 0.22) !important;
}

body.blog-page .entry-card .entry-link {
  display: block !important;
  text-decoration: none !important;
  color: inherit !important;
}

body.blog-page .entry-card .entry-title {
  font-size: clamp(1.05rem, 1.4vw, 1.25rem) !important;
  line-height: 1.25 !important;
  color: var(--plum, #6b4a8a) !important;
  margin: 8px 0 10px !important;
}
body.blog-page .entry-card .entry-title em {
  font-style: normal !important;
  color: var(--ember, #c9765a) !important;
}
body.blog-page .entry-card .entry-excerpt {
  font-family: 'Nunito', sans-serif !important;
  font-size: 0.92rem !important;
  line-height: 1.55 !important;
  color: var(--ink-soft, #4a3a62) !important;
  margin: 0 0 12px !important;
}

/* ---------- Meta line (No. X • date • read time) ---------- */

body.blog-page .entry-meta {
  font-family: 'Nunito', sans-serif !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--ink-faint, #8a7a9e) !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}
body.blog-page .entry-number { color: var(--ember, #c9765a) !important; }
body.blog-page .entry-dot { color: var(--ink-faint, #8a7a9e) !important; }

/* ---------- Tags ---------- */

body.blog-page .entry-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin: 8px 0 14px !important;
}
body.blog-page .entry-tag {
  display: inline-block !important;
  font-family: 'Caveat', cursive !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.005em !important;
  line-height: 1 !important;
  padding: 2px 10px 3px !important;
  background: #fef3d9 !important;
  color: var(--plum, #6b4a8a) !important;
  border-radius: 3px !important;
  border: 1.5px dashed rgba(107, 74, 138, 0.55) !important;
  position: static !important;
  box-shadow: none !important;
  transform: none !important;
  transition: none !important;
}
body.blog-page .entry-tag::before {
  content: "#" !important;
  position: static !important;
  display: inline !important;
  margin-right: 1px !important;
  color: var(--plum, #6b4a8a) !important;
  opacity: 1 !important;
}

/* ---------- Blog filter (tag chips if present) ---------- */

body.blog-page .blog-filter,
body.blog-page .filter-status,
body.blog-page .tag-chip,
body.blog-page .chip-count {
  color: var(--ink, #2a1f3d) !important;
}
body.blog-page .tag-chip {
  background: transparent !important;
  border: 1px dashed rgba(107, 74, 138, 0.22) !important;
  color: var(--ink, #2a1f3d) !important;
  border-radius: 100px !important;
}
body.blog-page .tag-chip:hover,
body.blog-page .tag-chip.is-active {
  background: var(--ember, #c9765a) !important;
  color: #fff8ec !important;
  border-color: var(--ember, #c9765a) !important;
}

/* Hide the decorative [ ] brackets from the base style */
body.blog-page .tag-chip .chip-bracket {
  display: none !important;
}

/* Tag count readable on ember fill when active/hover */
body.blog-page .tag-chip:hover .chip-count,
body.blog-page .tag-chip.is-active .chip-count {
  color: #2a1f3d !important;
  opacity: 1 !important;
}

/* ---------- Empty state ---------- */
body.blog-page .blog-empty {
  font-family: 'Caveat', cursive !important;
  font-size: 1.4rem !important;
  color: var(--ink-soft, #4a3a62) !important;
  padding: clamp(40px, 6vh, 80px) 0 !important;
  text-align: center !important;
}

/* ---------- Footer ---------- */
body.blog-page footer {
  border-top: 1px dashed rgba(107, 74, 138, 0.22) !important;
  padding: clamp(32px, 5vh, 48px) 0 24px !important;
  color: var(--ember, #c9765a) !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.04em !important;
}

/* ============================================================
   DARK MODE — deep plum night for the blog
   ============================================================ */

@media (prefers-color-scheme: dark) {
  body.blog-page .blog-masthead {
    border-bottom-color: rgba(201, 184, 221, 0.2) !important;
  }
  body.blog-page .mast-lead { color: var(--plum-dusk, #a98ec9) !important; }
  body.blog-page .mast-lead em { color: var(--ember, #e89878) !important; }
  body.blog-page .mast-meta { color: var(--ink-soft, #d8c9ec) !important; }
  body.blog-page .mast-meta .meta-label { color: var(--ink-faint, #9e8cb8) !important; }

  /* Featured entry on dark — deep plum notebook sheet */
  body.blog-page .entry-featured {
    background:
      repeating-linear-gradient(to bottom, transparent 0, transparent 31px,
        rgba(201, 184, 221, 0.06) 31px, rgba(201, 184, 221, 0.06) 32px),
      radial-gradient(ellipse at 50% 30%, #352850 0%, #2a1f3d 65%, #231734 100%) !important;
    border-color: rgba(201, 184, 221, 0.10) !important;
    box-shadow:
      0 1px 0 rgba(201, 184, 221, 0.06) inset,
      0 2px 8px rgba(0, 0, 0, 0.4),
      0 22px 54px -14px rgba(0, 0, 0, 0.55) !important;
  }
  body.blog-page .entry-featured::before {
    background: linear-gradient(180deg,
      rgba(232, 152, 120, 0.88),
      rgba(201, 118, 90, 0.72)) !important;
  }
  body.blog-page .entry-featured .entry-title { color: #fef3d9 !important; }
  body.blog-page .entry-featured .entry-title em { color: var(--ember, #e89878) !important; }
  body.blog-page .entry-featured .entry-excerpt { color: var(--ink-soft, #d8c9ec) !important; }
  body.blog-page .entry-featured .entry-cta { color: var(--ember, #e89878) !important; }

  /* Entry cards on dark */
  body.blog-page .entry-card {
    background:
      repeating-linear-gradient(to bottom, transparent 0, transparent 31px,
        rgba(201, 184, 221, 0.05) 31px, rgba(201, 184, 221, 0.05) 32px),
      #2a1f3d !important;
    border-color: rgba(201, 184, 221, 0.14) !important;
    box-shadow:
      0 1px 0 rgba(201, 184, 221, 0.05) inset,
      0 2px 8px rgba(0, 0, 0, 0.4),
      0 14px 28px -14px rgba(0, 0, 0, 0.55) !important;
  }
  body.blog-page .entry-card:hover {
    box-shadow:
      0 1px 0 rgba(201, 184, 221, 0.06) inset,
      0 4px 12px rgba(0, 0, 0, 0.45),
      0 20px 36px -14px rgba(0, 0, 0, 0.6) !important;
  }
  body.blog-page .entry-card .entry-title { color: #fef3d9 !important; }
  body.blog-page .entry-card .entry-title em { color: var(--ember, #e89878) !important; }
  body.blog-page .entry-card .entry-excerpt { color: var(--ink-soft, #d8c9ec) !important; }

  /* Meta + tags on dark */
  body.blog-page .entry-meta { color: var(--ink-faint, #9e8cb8) !important; }
  body.blog-page .entry-number { color: var(--ember, #e89878) !important; }
  body.blog-page .entry-tag {
    background: rgba(201, 184, 221, 0.10) !important;
    color: var(--plum-dusk, #a98ec9) !important;
    border-color: rgba(201, 184, 221, 0.20) !important;
  }
  body.blog-page .tag-chip {
    border-color: rgba(201, 184, 221, 0.22) !important;
    color: var(--ink, #fef3d9) !important;
  }
  body.blog-page .chip-count { color: var(--ink, #fef3d9) !important; }
  body.blog-page .tag-chip:hover,
  body.blog-page .tag-chip.is-active {
    background: var(--ember, #e89878) !important;
    color: #1e1530 !important;
    border-color: var(--ember, #e89878) !important;
  }
  body.blog-page .blog-empty { color: var(--ink-soft, #d8c9ec) !important; }
  body.blog-page footer {
    border-top-color: rgba(201, 184, 221, 0.20) !important;
    color: var(--ember, #e89878) !important;
  }
}

/* ============================================================
   MOBILE
   ============================================================ */

@media (max-width: 720px) {
  /* Compact masthead — no dashed divider, tight spacing */
  body.blog-page .blog-masthead {
    padding: 12px 0 0 !important;
    border-bottom: 0 !important;
    margin-bottom: 0 !important;
  }
  body.blog-page .mast-lead {
    white-space: normal !important;
    font-size: clamp(1.3rem, 5vw, 1.9rem) !important;
    line-height: 1.2 !important;
    margin: 0 0 6px !important;
  }
  body.blog-page .mast-meta {
    font-size: 0.68rem !important;
    letter-spacing: 0.06em !important;
    margin: 0 !important;
  }

  /* Tighten the filter spacing and add scroll hint on the right */
  body.blog-page .blog-filter {
    padding: 6px 0 4px !important;
    margin-bottom: clamp(14px, 2vh, 20px) !important;
    position: relative !important;
    top: 0 !important;
  }
  body.blog-page .blog-filter::after { display: none !important; }
  body.blog-page .filter-header {
    padding: 0 4px 8px !important;
  }
  body.blog-page .filter-rule-num,
  body.blog-page .filter-rule-label {
    display: none !important;
  }
  body.blog-page .blog-filter {
    overflow: visible !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  body.blog-page .filter-tags {
    display: block !important;
    white-space: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 4px 16px 10px !important;
    margin: 0 -16px !important;
    width: auto !important;
    max-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    touch-action: pan-x !important;
    overscroll-behavior-x: contain !important;
  }
  body.blog-page .filter-tags > * {
    display: inline-flex !important;
    vertical-align: middle !important;
    margin-right: 8px !important;
  }
  body.blog-page .filter-tags > *:last-child {
    margin-right: 24px !important;
  }
  body.blog-page .filter-tags::-webkit-scrollbar { display: none !important; }
  body.blog-page .tag-chip {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    scroll-snap-align: start !important;
    touch-action: pan-x !important;
  }

  /* Keep the featured card + entry cards inside the viewport */
  body.blog-page .entry-featured {
    padding: clamp(22px, 5vw, 32px) clamp(18px, 4vw, 24px) !important;
    transform: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow: hidden !important;
  }
  body.blog-page .entry-featured::before { left: 24px !important; }

  body.blog-page .entry-grid {
    grid-template-columns: 1fr !important;
    gap: clamp(24px, 4vh, 36px) !important;
  }
  body.blog-page .entry-card {
    padding: clamp(20px, 4vw, 28px) clamp(16px, 4vw, 22px) !important;
    transform: none !important;
    margin: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }
  body.blog-page .entry-card:nth-child(odd),
  body.blog-page .entry-card:nth-child(even) { transform: none !important; }

  /* Stack the layout (filter first, feed second) */
  body.blog-page .blog-layout {
    display: flex !important;
    flex-direction: column !important;
    gap: clamp(20px, 3vh, 28px) !important;
  }

  /* Trim the entry-featured drop cap so it doesn't dominate */
  body.blog-page .entry-featured .entry-excerpt-drop::first-letter {
    font-size: 2.8em !important;
  }
}

@media (min-width: 721px) {
  body.blog-page .filter-rule-num { display: none !important; }
  body.blog-page .filter-rule-label { color: var(--ink) !important; font-weight: 700 !important; }
  body.blog-page .tag-chip:not(:hover):not(.is-active),
  body.blog-page .tag-chip:not(:hover):not(.is-active) .chip-count {
    color: var(--ink) !important;
  }
}
@media (min-width: 721px) and (prefers-color-scheme: dark) {
  body.blog-page .filter-rule-label { color: var(--ink) !important; }
  body.blog-page .tag-chip:not(:hover):not(.is-active),
  body.blog-page .tag-chip:not(:hover):not(.is-active) .chip-count {
    color: var(--ink) !important;
  }
}
