.blog-detail {
  --blog-paper: #fdfdfc;
  --blog-ink: #12110d;
  --blog-muted: #45433e;
  --blog-rule: #e0ddd5;
  --blog-accent: #4338ca;
  --blog-header-clearance: 112px;
  --blog-mono: "Editorial Plex Mono", monospace;
  background: var(--blog-paper);
  color: var(--blog-ink);
  font-family: "Editorial Figtree", system-ui, sans-serif;
  font-size: 18px;
  line-height: 1.68;
  overflow-wrap: anywhere;
  -webkit-font-smoothing: antialiased;
}

.blog-detail :where(h1, h2, h3, h4, h5, h6) { font-family: inherit; }
.blog-detail a { color: var(--blog-accent); text-underline-offset: 4px; }
.blog-detail a:hover { text-decoration: underline; }
.blog-detail :where(a, button, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--blog-accent);
  outline-offset: 4px;
}

.blog-detail-frame {
  max-width: 1280px;
  margin: 0 auto;
  border-inline: 1px solid var(--blog-rule);
}

.blog-detail-hero { padding: 88px 96px 64px; border-bottom: 1px solid var(--blog-rule); }
.blog-detail .blog-detail-eyebrow {
  display: block;
  margin: 0;
  font-family: var(--blog-mono);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--blog-accent);
}
.blog-detail-hero > .blog-detail-eyebrow { width: fit-content; }
.blog-detail-hero h1 {
  max-width: 1000px;
  margin: 32px 0 0;
  font-size: clamp(42px, 5.56vw, 80px);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -.035em;
  text-wrap: pretty;
}
.blog-detail-lede { max-width: 704px; margin: 36px 0 0; color: var(--blog-muted); font-size: 22px; line-height: 1.48; }
.blog-detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 32px;
  margin-top: 36px;
  color: var(--blog-muted);
  font: 12px/1.8 var(--blog-mono);
}
.blog-detail-admin { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 20px; font-size: 14px; }
.blog-detail-admin button { color: #b91c1c; cursor: pointer; }

.blog-detail .blog-detail-body {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
}
.blog-detail .blog-detail-sidebar { margin: 0; padding: 64px 32px; border-right: 1px solid var(--blog-rule); }
.blog-detail .blog-detail-sidebar-sticky {
  position: sticky;
  top: var(--blog-header-clearance);
  max-height: calc(100dvh - var(--blog-header-clearance) - 24px);
  overflow-y: auto;
  scrollbar-width: thin;
}
.blog-detail-contents ol { list-style: none; margin: 16px 0 0; padding: 0; }
.blog-detail-contents li { margin: 0; padding: 0; }
.blog-detail-contents a { display: block; padding: 8px 0; color: var(--blog-muted); font-size: 14px; line-height: 1.45; }
.blog-detail-contents a:hover { color: var(--blog-accent); }
.blog-detail-main { grid-column: 2; min-width: 0; width: 100%; max-width: 800px; padding: 64px 48px 88px; }
.blog-detail-mobile-contents { display: none; }

.blog-detail-summary { display: grid; gap: 40px; margin-bottom: 48px; }
.blog-detail-takeaways { padding-bottom: 32px; border-bottom: 1px solid var(--blog-rule); }
.blog-detail-takeaways ul { list-style: disc; padding-left: 22px; margin: 20px 0 0; }
.blog-detail-takeaways li { padding-left: 4px; margin-top: 12px; }
.blog-detail-takeaways li::marker { color: var(--blog-muted); }
.blog-detail .blog-carousel { border: 1px solid var(--blog-rule); border-radius: 0; background: transparent; }
.blog-detail .blog-carousel-stage { background: #f3f1eb; }
.blog-detail .blog-carousel-control { color: var(--blog-ink); border: 1px solid var(--blog-rule); box-shadow: none; }
.blog-detail .blog-carousel-footer { background: var(--blog-paper); border-top: 1px solid var(--blog-rule); color: var(--blog-muted); font: 12px/1.6 var(--blog-mono); }

.blog-detail .article-content { padding: 0; font-size: 18px; line-height: 1.68; }
.blog-detail .article-content p { padding: 0; margin: 0 0 24px; }
.blog-detail .article-content :is(h1, h2, h3, h4, h5, h6) {
  position: static;
  padding: 0;
  background: transparent;
  color: inherit;
  font-weight: 500;
  letter-spacing: -.02em;
  scroll-margin-top: var(--blog-header-clearance);
}
.blog-detail .article-content h1,
.blog-detail .article-content h2 { font-size: 36px; line-height: 1.12; margin: 72px 0 24px; }
.blog-detail .article-content h3 { font-size: 26px; line-height: 1.25; margin: 40px 0 20px; }
.blog-detail .article-content :where(h4, h5, h6) { font-size: 21px; line-height: 1.4; margin: 32px 0 16px; }
.blog-detail .article-content > :first-child,
.blog-detail .article-content > .trix-content > :first-child { margin-top: 0; }
.blog-detail .article-content strong { font-weight: 600; }
.blog-detail .article-content :is(h1, h2, h3, h4, h5, h6) strong { font-weight: inherit; }
.blog-detail .article-content :where(ul, ol) { padding-left: 28px; margin: 0 0 24px; }
.blog-detail .article-content ul { list-style: disc; }
.blog-detail .article-content ol { list-style: decimal; }
.blog-detail .article-content li { padding-left: 6px; margin: 12px 0; }
.blog-detail .article-content li p { margin-bottom: 12px; padding: 0; }
.blog-detail .article-content li :where(ul, ol) { margin-top: 12px; }
.blog-detail .article-content a { color: var(--blog-accent); text-decoration: underline; }
.blog-detail .article-content blockquote { margin: 32px 0; padding: 0 0 0 24px; border-left: 2px solid var(--blog-rule); color: var(--blog-muted); }
.blog-detail .article-content hr { margin: 48px 0; border: 0; border-top: 1px solid var(--blog-rule); }
.blog-detail .article-content pre { max-width: 100%; overflow-x: auto; padding: 20px; margin: 32px 0; background: #f3f1eb; font: 14px/1.7 var(--blog-mono); }
.blog-detail .article-content code { font-family: var(--blog-mono); font-size: .85em; }
.blog-detail .article-content .tableWrapper { max-width: 100%; margin: 32px 0; }
.blog-detail .article-content table { overflow-wrap: normal; }
.blog-detail .article-content :where(th, td) { border-color: var(--blog-rule); padding: 12px 16px; }
.blog-detail .article-content th { background: #f3f1eb; font-weight: 600; }
.blog-detail .article-content figure { max-width: 100%; margin: 48px 0; }
.blog-detail .article-content .blog-visual { border: 1px solid var(--blog-rule); }
.blog-detail .article-content .blog-visual img { border-radius: 0; }
.blog-detail .article-content figcaption { color: var(--blog-muted); font: 12px/1.7 var(--blog-mono); }
.blog-detail .article-content .blog-visual figcaption { padding: 16px 20px; margin: 0; border-top: 1px solid var(--blog-rule); }
.blog-detail .article-content [data-blog-credit] { font-size: inherit; }
.blog-detail .article-content iframe { min-height: 0; aspect-ratio: 16 / 9; height: auto; }

.blog-detail-cta { margin-top: 64px; padding: 40px 0; border-top: 1px solid var(--blog-rule); }
.blog-detail-cta h2 { margin: 0 0 16px; font-size: 28px; font-weight: 500; line-height: 1.25; letter-spacing: -.02em; }
.blog-detail-cta p { margin: 0; color: var(--blog-muted); }
.blog-detail-cta-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 24px; font-size: 15px; }
.blog-detail-cta-links a,
.blog-detail-author > a { text-decoration: underline; }
.blog-detail-author { padding-top: 40px; border-top: 1px solid var(--blog-rule); }
.blog-detail-author-identity { display: flex; align-items: center; gap: 16px; margin-top: 24px; }
.blog-detail-avatar { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 50%; object-fit: cover; }
.blog-detail-avatar-initials { display: grid; place-items: center; background: #eeecf6; color: var(--blog-accent); font-size: 16px; }
.blog-detail-author-name { margin: 0; font-weight: 600; }
.blog-detail-author-identity .blog-detail-author-role { margin: 0; color: var(--blog-muted); font-size: 14px; }
.blog-detail-author-bio { margin: 20px 0; color: var(--blog-muted); font-size: 16px; }
.blog-detail-author > a { font-size: 14px; }

@media (max-width: 1279px) {
  .blog-detail-frame { margin-inline: 24px; }
  .blog-detail-hero { padding-inline: 64px; }
  .blog-detail .blog-detail-body { grid-template-columns: 220px minmax(0, 1fr); }
  .blog-detail .blog-detail-sidebar { padding-inline: 24px; }
  .blog-detail-main { padding-inline: 32px; }
}

@media (max-width: 1023px) {
  .blog-detail-hero { padding: 64px 48px 48px; }
  .blog-detail .blog-detail-body { display: block; }
  .blog-detail .blog-detail-sidebar { display: none; }
  .blog-detail-main { max-width: 800px; margin-inline: auto; padding: 40px 48px 64px; }
  .blog-detail-mobile-contents { display: block; margin-bottom: 40px; padding-bottom: 24px; border-bottom: 1px solid var(--blog-rule); }
  .blog-detail-mobile-contents > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; }
  .blog-detail-mobile-contents > summary::-webkit-details-marker { display: none; }
  .blog-detail-mobile-contents > summary::after { content: "+"; font-size: 20px; line-height: 1; }
  .blog-detail-mobile-contents[open] > summary::after { content: "−"; }
}

@media (max-width: 599px) {
  .blog-detail-frame { margin-inline: 16px; }
  .blog-detail-hero { padding: 56px 24px 48px; }
  .blog-detail-hero h1 { font-size: 42px; line-height: 1.08; }
  .blog-detail-lede { font-size: 20px; margin-top: 28px; }
  .blog-detail-meta { flex-direction: column; gap: 8px; margin-top: 32px; }
  .blog-detail-main { padding: 32px 24px 56px; }
  .blog-detail-summary { gap: 32px; margin-bottom: 40px; }
  .blog-detail .article-content h1,
  .blog-detail .article-content h2 { font-size: 28px; margin-top: 48px; }
  .blog-detail .article-content h3 { font-size: 24px; }
  .blog-detail .article-content > :first-child,
  .blog-detail .article-content > .trix-content > :first-child { margin-top: 0; }
  .blog-detail .article-content figure { margin-block: 32px; }
  .blog-detail-cta { margin-top: 48px; padding-block: 32px; }
  .blog-detail-cta h2 { font-size: 26px; }
  .blog-detail-cta-links { flex-direction: column; align-items: flex-start; }
}
