/* ─── from @makr/template-components (tree-shaken) ─── */
@import"https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&family=Inter:wght@400;500;600&display=swap";:root{--blog-paper: #fafafa;--blog-ink: #171717;--blog-muted: #737373;--blog-rule: #171717;--blog-rule-light: #e5e5e5;--blog-accent: #2563eb;--blog-card: #ffffff;--blog-max: 38rem;--blog-wide: 42rem;--blog-serif: "Source Serif 4", "Iowan Old Style", Georgia, serif;--blog-display: "Source Serif 4", Georgia, serif;--blog-sans: Inter, system-ui, -apple-system, sans-serif}.blog-essay{min-height:100vh;background:var(--blog-paper);color:var(--blog-ink);font-family:var(--blog-serif);font-size:1.125rem;line-height:1.8;-webkit-font-smoothing:antialiased}.blog-essay[data-density=compact]{font-size:.98rem;line-height:1.55}.blog-essay[data-density=compact] .blog-shell{padding-top:.85rem;padding-bottom:2.5rem}.blog-essay[data-density=compact] .blog-post-list>li{padding:1rem 0}.blog-essay[data-density=airy]{font-size:1.1rem;line-height:1.8}.blog-essay[data-density=airy] .blog-shell{padding-top:1.75rem;padding-bottom:5rem}.blog-essay[data-density=airy] .blog-post-list>li{padding:2rem 0}.blog-essay a{color:inherit}.blog-shell{max-width:var(--blog-wide);margin:0 auto;padding:2.5rem 1.5rem 5rem}.blog-topbar{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-family:var(--blog-sans);font-size:.8rem;letter-spacing:.02em;text-transform:none;color:var(--blog-muted);padding-bottom:1rem;border-bottom:none}.blog-topbar a{text-decoration:none}.blog-topbar a:hover{color:var(--blog-ink);text-decoration:underline;text-underline-offset:3px}.blog-masthead{text-align:left;padding:2rem 0 1.5rem;border-bottom:1px solid var(--blog-rule-light);margin-bottom:2.5rem}.blog-masthead__title{font-family:var(--blog-display);font-weight:600;font-size:clamp(1.75rem,4vw,2.25rem);line-height:1.2;letter-spacing:-.03em;margin:0}.blog-masthead__title a{text-decoration:none}.blog-masthead__deck{font-family:var(--blog-sans);font-size:.95rem;letter-spacing:0;text-transform:none;color:var(--blog-muted);margin:.5rem 0 0;line-height:1.5}.blog-masthead__rule{display:none;justify-content:flex-start;gap:.75rem;align-items:center;margin-top:1rem;font-family:var(--blog-sans);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blog-muted)}.blog-masthead__rule:before,.blog-masthead__rule:after{content:"";height:1px;width:3.5rem;background:var(--blog-rule-light)}.blog-index-intro{max-width:var(--blog-max);margin:0 auto 2.5rem;text-align:left}.blog-index-intro h1{font-family:var(--blog-display);font-size:clamp(1.5rem,3vw,1.9rem);font-weight:600;margin:0 0 .5rem;letter-spacing:-.02em}.blog-index-intro p{margin:0;color:var(--blog-muted);font-size:.98rem;line-height:1.6}.blog-section-label{font-family:var(--blog-sans);font-size:.72rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--blog-muted);border-bottom:1px solid var(--blog-rule-light);padding-bottom:.6rem;margin:0}.blog-post-list{list-style:none;padding:0;margin:0}.blog-post-list>li{border-bottom:1px solid var(--blog-rule-light);padding:1.75rem 0}.blog-post-list>li:first-child{border-top:1px solid var(--blog-rule-light)}.blog-post-card{display:grid;gap:.5rem}.blog-post-card__cover-link{display:block;text-decoration:none}.blog-post-card__cover{width:100%;aspect-ratio:3 / 2;object-fit:cover;display:block;border-radius:2px;background:var(--blog-card)}.blog-post-card__body{display:grid;gap:.4rem}.blog-post-card__kicker{font-family:var(--blog-sans);font-size:.7rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--blog-accent)}.blog-post-card__title{font-family:var(--blog-display);font-size:clamp(1.3rem,2.6vw,1.65rem);font-weight:600;line-height:1.25;margin:0;letter-spacing:-.015em}.blog-post-card__title a{text-decoration:none}.blog-post-card__title a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.blog-post-card__dek{margin:0;color:var(--blog-muted);font-size:1rem;line-height:1.6;max-width:38rem}.blog-post-card__meta{font-family:var(--blog-sans);font-size:.8rem;color:var(--blog-muted);letter-spacing:.01em}.blog-post-list--grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--blog-rule-light)}.blog-post-list--grid>li{border-bottom:1px solid var(--blog-rule-light);padding:1.5rem}.blog-post-list--grid>li:nth-child(odd){border-right:1px solid var(--blog-rule-light)}.blog-post-list--grid>li:first-child{border-top:none}.blog-post-list--grid .blog-post-card__title{font-size:clamp(1.15rem,2.2vw,1.4rem)}.blog-index--featured{border-top:1px solid var(--blog-rule-light)}.blog-index__lead{padding:1.75rem 0 1.5rem;border-bottom:1px solid var(--blog-rule-light);margin-bottom:0}.blog-post-card--featured .blog-post-card__title{font-size:clamp(1.85rem,4.5vw,2.6rem);line-height:1.1}.blog-post-card--featured .blog-post-card__dek{font-size:1.08rem;max-width:38rem}.blog-post-card--featured .blog-post-card__cover{aspect-ratio:2 / 1;margin-bottom:.9rem}@media (max-width: 640px){.blog-post-list--grid{grid-template-columns:1fr}.blog-post-list--grid>li:nth-child(odd){border-right:none}}.blog-empty{font-family:var(--blog-sans);color:var(--blog-muted);text-align:center;padding:3rem 1rem;border-top:1px solid var(--blog-rule-light);border-bottom:1px solid var(--blog-rule-light)}.blog-article{max-width:var(--blog-max);margin:0 auto}.blog-article--narrow{max-width:36rem}.blog-article--cover-hero .blog-article__cover{margin:0 0 1.75rem;max-height:20rem;object-fit:cover;width:100%;border-radius:2px}.blog-article--cover-hero .blog-article__title{font-size:clamp(2rem,5vw,2.9rem)}.blog-article__kicker{font-family:var(--blog-sans);font-size:.72rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--blog-accent);margin:0 0 .75rem}.blog-article__title{font-family:var(--blog-display);font-size:clamp(1.9rem,4.5vw,2.7rem);font-weight:600;line-height:1.18;letter-spacing:-.02em;margin:0 0 .85rem}.blog-article__dek{font-size:1.2rem;color:var(--blog-muted);margin:0 0 1.1rem;line-height:1.55;font-family:var(--blog-serif)}.blog-article__dateline{font-family:var(--blog-sans);font-size:.82rem;letter-spacing:.01em;color:var(--blog-muted);padding-bottom:1.5rem;border-bottom:1px solid var(--blog-rule-light);margin-bottom:2rem}.blog-article__cover{width:100%;display:block;margin:0 0 1.9rem;border-radius:2px}.blog-article--narrow .blog-prose>p:first-of-type:first-letter,.blog-article:not(.blog-article--cover-hero) .blog-prose>p:first-of-type:first-letter{float:left;font-family:var(--blog-display);font-size:3.6em;line-height:.78;font-weight:600;padding:.06em .12em 0 0;color:var(--blog-ink)}.blog-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin:2.25rem 0 0;font-family:var(--blog-sans)}.blog-tag{font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;padding:.25rem .55rem;border:1px solid var(--blog-rule-light);color:var(--blog-muted);border-radius:999px}.blog-neighbors{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:3.5rem;padding-top:1.75rem;border-top:1px solid var(--blog-rule-light);font-family:var(--blog-sans);font-size:.9rem}.blog-neighbors a{text-decoration:none;max-width:100%}.blog-neighbors a:hover .blog-neighbors__title{text-decoration:underline;text-underline-offset:2px}.blog-neighbors__label{display:block;font-size:.72rem;letter-spacing:.03em;text-transform:uppercase;color:var(--blog-muted);margin-bottom:.4rem}.blog-neighbors__title{font-family:var(--blog-display);font-size:1.05rem;font-weight:600;line-height:1.3}.blog-neighbors__next{text-align:right;justify-self:end}.blog-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:2.5rem 0 0;padding:1rem 0 0;border-top:1px solid var(--blog-rule-light);font-family:var(--blog-sans);font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.blog-pagination__link{color:var(--blog-ink);text-decoration:none}.blog-pagination__link:hover{color:var(--blog-accent);text-decoration:underline}.blog-pagination__link--disabled{color:var(--blog-muted);opacity:.45;pointer-events:none}.blog-pagination__status{color:var(--blog-muted);font-weight:500;letter-spacing:.06em}.blog-primary-nav{display:flex;flex-wrap:wrap;gap:.85rem 1.25rem;margin:0 0 1.75rem;padding:.65rem 0;border-bottom:1px solid var(--blog-rule-light);font-family:var(--blog-sans);font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.blog-primary-nav a{color:var(--blog-ink);text-decoration:none}.blog-primary-nav a:hover{color:var(--blog-accent);text-decoration:underline}.blog-primary-nav__placeholder{color:var(--blog-muted);font-weight:500;font-style:italic;text-transform:none;letter-spacing:0}.blog-footer{margin-top:4rem;padding-top:1.25rem;border-top:1px solid var(--blog-rule-light);font-family:var(--blog-sans);font-size:.78rem;letter-spacing:.02em;text-transform:none;color:var(--blog-muted);display:flex;justify-content:space-between;gap:1rem}.blog-footer a{text-decoration:none}.blog-footer a:hover{color:var(--blog-ink);text-decoration:underline}.blog-footer__links{display:inline-flex;align-items:center;gap:.15rem}.blog-tag-archive__eyebrow{font-family:var(--blog-sans);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--blog-accent);margin:0 0 .35rem}.blog-series{margin:0 0 1.75rem;padding:1rem 1.1rem;border:1px solid var(--blog-rule-light);background:var(--blog-card);font-family:var(--blog-sans)}.blog-series__label{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blog-accent);margin-bottom:.55rem}.blog-series__list{margin:0;padding-left:0;list-style:none;font-size:.9rem;line-height:1.55}.blog-series__list li{margin:.25rem 0}.blog-series__list li.is-current{font-weight:600}.blog-series__list a{color:inherit;text-underline-offset:2px}.blog-series__num{color:var(--blog-muted);font-size:.8rem}.blog-related{margin-top:2.5rem}.blog-related__list{list-style:none;padding:0;margin:0}.blog-related__list>li{padding:1rem 0;border-bottom:1px solid var(--blog-rule-light)}.blog-related__list a{font-family:var(--blog-display);font-weight:700;font-size:1.15rem;text-decoration:none}.blog-related__list a:hover{text-decoration:underline;text-underline-offset:3px}.blog-related__dek{margin:.35rem 0 0;color:var(--blog-muted);font-size:.95rem}.blog-prose{font-size:1.05rem;line-height:1.75;word-wrap:break-word;overflow-wrap:break-word}.blog-prose>*:first-child{margin-top:0}.blog-prose h1,.blog-prose h2,.blog-prose h3,.blog-prose h4,.blog-prose .blog-h{font-family:var(--blog-display);line-height:1.25;letter-spacing:-.015em;margin:2rem 0 .65rem;font-weight:700;color:var(--blog-ink)}.blog-prose h1,.blog-prose .blog-h--1{font-size:1.75rem}.blog-prose h2,.blog-prose .blog-h--2{font-size:1.4rem}.blog-prose h3,.blog-prose .blog-h--3{font-size:1.15rem;font-weight:650}.blog-prose h4,.blog-prose .blog-h--4{font-size:1.05rem;font-weight:650;letter-spacing:-.01em}.blog-prose p,.blog-prose .blog-p{margin:0 0 1.15rem}.blog-prose .blog-p--lead{font-size:1.2rem;line-height:1.65;color:var(--blog-muted)}.blog-prose .blog-p--small{font-size:.875rem;line-height:1.55;color:var(--blog-muted)}.blog-prose .blog-p--dropcap:first-letter{float:left;font-family:var(--blog-display);font-size:3.4em;line-height:.85;font-weight:700;padding:.08em .12em 0 0;color:var(--blog-ink)}.blog-prose a{color:var(--blog-accent);text-underline-offset:2px}.blog-prose a:hover{text-decoration-thickness:2px}.blog-prose strong,.blog-prose b{font-weight:700}.blog-prose em,.blog-prose i{font-style:italic}.blog-prose u{text-decoration:underline;text-underline-offset:2px}.blog-prose s,.blog-prose del{text-decoration:line-through;opacity:.85}.blog-prose mark{background:color-mix(in srgb,var(--blog-accent) 22%,transparent);color:inherit;padding:.05em .15em;border-radius:2px}.blog-prose sub,.blog-prose sup{font-size:.75em;line-height:0}.blog-prose .blog-align-center{text-align:center}.blog-prose .blog-align-right{text-align:right}.blog-prose .blog-align-justify{text-align:justify}.blog-prose ul,.blog-prose ol,.blog-prose .blog-ul,.blog-prose .blog-ol{padding-left:1.35rem;margin:0 0 1.15rem}.blog-prose li{margin:.25rem 0}.blog-prose .blog-ul{list-style:disc}.blog-prose .blog-ul--dash{list-style:none;padding-left:.15rem}.blog-prose .blog-ul--dash>li{position:relative;padding-left:1.25rem}.blog-prose .blog-ul--dash>li:before{content:"\2013";position:absolute;left:.15rem;color:var(--blog-muted);font-weight:600}.blog-prose .blog-ul--check{list-style:none;padding-left:.15rem}.blog-prose .blog-ul--check>li{position:relative;padding-left:1.5rem}.blog-prose .blog-ul--check>li:before{content:"\2713";position:absolute;left:.1rem;color:var(--blog-accent);font-weight:700;font-size:.9em}.blog-prose .blog-ol--decimal{list-style:decimal}.blog-prose .blog-ol--alpha{list-style:lower-alpha}.blog-prose .blog-ol--roman{list-style:lower-roman}.blog-prose .blog-todo{list-style:none;padding-left:0;margin:0 0 1.25rem}.blog-prose .blog-todo__item{display:flex;align-items:flex-start;gap:.55rem;margin:.4rem 0;line-height:1.5}.blog-prose .blog-todo__item input[type=checkbox]{margin-top:.3em;flex-shrink:0;accent-color:var(--blog-accent)}.blog-prose .blog-todo__item.is-done span,.blog-prose .blog-todo__item.is-done{color:var(--blog-muted);text-decoration:line-through}.blog-prose .blog-todo--bordered .blog-todo__item{border:1px solid var(--blog-rule-light);border-radius:10px;padding:.55rem .75rem;background:var(--blog-card);text-decoration:none}.blog-prose .blog-todo--bordered .blog-todo__item.is-done span{text-decoration:line-through}.blog-prose blockquote,.blog-prose .blog-quote{margin:1.5rem 0;padding:.25rem 0 .25rem 1.15rem;border-left:3px solid var(--blog-ink);font-style:italic;color:var(--blog-muted)}.blog-prose .blog-quote p{margin:0}.blog-prose .blog-quote--pull,.blog-prose .blog-pullquote{margin:2rem 0;padding:.5rem 0 .5rem 1.25rem;border-left:4px solid var(--blog-accent);font-family:var(--blog-display);font-size:1.35rem;font-style:italic;line-height:1.4;color:var(--blog-ink)}.blog-prose .blog-quote--large{margin:2rem 0;padding:1rem 0;border-left:none;font-family:var(--blog-display);font-size:1.55rem;font-style:normal;font-weight:600;line-height:1.35;color:var(--blog-ink);text-align:center}.blog-prose .blog-quote--bordered{margin:1.5rem 0;padding:1rem 1.15rem;border:1px solid var(--blog-rule-light);border-left:3px solid var(--blog-ink);border-radius:0 10px 10px 0;background:var(--blog-card);font-style:italic;color:var(--blog-muted)}.blog-prose .blog-callout{margin:1.5rem 0;padding:.9rem 1.1rem;border:1px solid var(--blog-rule-light);border-radius:10px;background:var(--blog-card);font-family:var(--blog-sans);font-size:.95rem;line-height:1.6}.blog-prose .blog-callout--note{border-left:3px solid var(--blog-accent);background:color-mix(in srgb,var(--blog-accent) 6%,var(--blog-card))}.blog-prose .blog-callout--tip{border-left:3px solid #2d5a3d;background:color-mix(in srgb,#2d5a3d 8%,var(--blog-card))}.blog-prose .blog-callout--warn{border-left:3px solid #b45309;background:color-mix(in srgb,#b45309 8%,var(--blog-card))}.blog-prose .blog-callout--success{border-left:3px solid #15803d;background:color-mix(in srgb,#15803d 8%,var(--blog-card))}.blog-prose .blog-callout--info{border-left:3px solid #1d4ed8;background:color-mix(in srgb,#1d4ed8 8%,var(--blog-card))}.blog-prose .blog-callout__label{display:block;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.35rem;color:var(--blog-muted)}.blog-prose .blog-callout__body{color:var(--blog-ink)}.blog-prose .blog-callout__body p:last-child{margin-bottom:0}.blog-prose pre,.blog-prose .blog-code{overflow-x:auto;padding:1rem 1.1rem;background:var(--blog-card);border:1px solid var(--blog-rule-light);border-radius:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem;line-height:1.5;margin:0 0 1.25rem}.blog-prose .blog-code code{background:none;border:none;padding:0;font-size:inherit;color:inherit}.blog-prose .blog-code--terminal{background:#0f172a;border-color:#1e293b;color:#e2e8f0}.blog-prose .blog-code--terminal code{color:#e2e8f0}.blog-prose .blog-code--numbered{counter-reset:blog-line}.blog-prose .blog-code--numbered code{display:block;white-space:pre}.blog-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9em}.blog-prose p code,.blog-prose li code,.blog-prose td code{background:var(--blog-card);border:1px solid var(--blog-rule-light);padding:.08em .35em;border-radius:4px}.blog-prose img{max-width:100%;height:auto;display:block;margin:1.25rem 0}.blog-prose .blog-figure{margin:1.5rem 0}.blog-prose .blog-figure img{margin:0;width:100%;border:1px solid var(--blog-rule-light);border-radius:4px}.blog-prose .blog-figure figcaption{font-family:var(--blog-sans);font-size:.8rem;color:var(--blog-muted);margin-top:.45rem;text-align:center}.blog-prose .blog-figure--contained{max-width:85%;margin-left:auto;margin-right:auto}.blog-prose .blog-figure--rounded img{border-radius:14px}.blog-prose .blog-figure--float-left{float:left;max-width:min(48%,280px);margin:.25rem 1.25rem 1rem 0}.blog-prose .blog-figure--float-right{float:right;max-width:min(48%,280px);margin:.25rem 0 1rem 1.25rem}.blog-prose .blog-gallery{display:grid;gap:.65rem;margin:1.5rem 0}.blog-prose .blog-gallery--grid-2{grid-template-columns:repeat(2,1fr)}.blog-prose .blog-gallery--grid-3{grid-template-columns:repeat(3,1fr)}.blog-prose .blog-gallery--grid-4{grid-template-columns:repeat(4,1fr)}.blog-prose .blog-gallery--mosaic{grid-template-columns:repeat(3,1fr);grid-auto-rows:120px}.blog-prose .blog-gallery--mosaic .blog-gallery__item:first-child{grid-column:span 2;grid-row:span 2}.blog-prose .blog-gallery__item{margin:0;overflow:hidden;border-radius:8px;border:1px solid var(--blog-rule-light)}.blog-prose .blog-gallery__item img{width:100%;height:100%;object-fit:cover;margin:0;display:block;border:0}.blog-prose .blog-gallery__caption{grid-column:1 / -1;font-family:var(--blog-sans);font-size:.8rem;color:var(--blog-muted);text-align:center;margin-top:.15rem}@media (max-width: 560px){.blog-prose .blog-gallery--grid-3,.blog-prose .blog-gallery--grid-4,.blog-prose .blog-gallery--mosaic{grid-template-columns:repeat(2,1fr)}.blog-prose .blog-gallery--mosaic .blog-gallery__item:first-child{grid-column:span 1;grid-row:span 1}.blog-prose .blog-figure--float-left,.blog-prose .blog-figure--float-right{float:none;max-width:100%;margin:1.25rem 0}}.blog-prose .blog-embed{position:relative;width:100%;aspect-ratio:16 / 9;margin:1.5rem 0;border:1px solid var(--blog-rule-light);border-radius:10px;background:var(--blog-card);overflow:hidden}.blog-prose .blog-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.blog-prose .blog-embed--wide{width:min(100vw - 2rem,calc(100% + 4rem));margin-left:50%;transform:translate(-50%)}.blog-prose .blog-embed--compact{max-width:28rem;margin-left:auto;margin-right:auto}.blog-prose .blog-embed-fallback{margin:1rem 0;font-family:var(--blog-sans);font-size:.95rem}.blog-prose hr,.blog-prose .blog-divider{border:0;border-top:1px solid var(--blog-rule-light);margin:2rem 0}.blog-prose .blog-divider--thick{border-top-width:3px;border-top-color:var(--blog-ink)}.blog-prose .blog-divider--dots{border:0;height:auto;text-align:center;margin:2rem 0;background:none;line-height:1;letter-spacing:.55em;color:var(--blog-muted)}.blog-prose .blog-divider--dots:before{content:"\b7\b7\b7";font-size:1.25rem}.blog-prose .blog-divider--gradient{border:0;height:2px;background:linear-gradient(90deg,transparent,var(--blog-accent),transparent)}.blog-prose .blog-table-wrap{overflow-x:auto;margin:1.5rem 0;border:1px solid var(--blog-rule-light);border-radius:10px;background:var(--blog-card)}.blog-prose .blog-table{width:100%;border-collapse:collapse;font-family:var(--blog-sans);font-size:.92rem;line-height:1.45}.blog-prose .blog-table th,.blog-prose .blog-table td{padding:.65rem .85rem;text-align:left;border-bottom:1px solid var(--blog-rule-light);vertical-align:top}.blog-prose .blog-table th{font-weight:650;background:color-mix(in srgb,var(--blog-ink) 4%,var(--blog-card));color:var(--blog-ink)}.blog-prose .blog-table tr:last-child td{border-bottom:0}.blog-prose .blog-table--striped tbody tr:nth-child(2n){background:color-mix(in srgb,var(--blog-ink) 3%,transparent)}.blog-prose .blog-table--bordered th,.blog-prose .blog-table--bordered td{border:1px solid var(--blog-rule-light)}.blog-prose .blog-table--compact th,.blog-prose .blog-table--compact td{padding:.4rem .55rem;font-size:.85rem}.blog-prose .blog-table--header-accent thead th{background:color-mix(in srgb,var(--blog-accent) 12%,var(--blog-card));color:var(--blog-ink);border-bottom:2px solid var(--blog-accent)}.blog-prose .blog-columns{display:grid;gap:1.25rem;margin:1.5rem 0}.blog-prose .blog-columns--2{grid-template-columns:1fr 1fr}.blog-prose .blog-columns--3{grid-template-columns:1fr 1fr 1fr}.blog-prose .blog-columns--2-1{grid-template-columns:2fr 1fr}.blog-prose .blog-columns--1-2{grid-template-columns:1fr 2fr}.blog-prose .blog-col>*:first-child{margin-top:0}.blog-prose .blog-col>*:last-child{margin-bottom:0}@media (max-width: 640px){.blog-prose .blog-columns--2,.blog-prose .blog-columns--3,.blog-prose .blog-columns--2-1,.blog-prose .blog-columns--1-2{grid-template-columns:1fr}}.blog-prose .blog-btn-wrap{margin:1.25rem 0}.blog-prose .blog-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.65rem 1.15rem;border-radius:10px;font-family:var(--blog-sans);font-size:.95rem;font-weight:600;line-height:1.2;text-decoration:none!important;border:1px solid transparent;transition:opacity .15s ease,transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease;cursor:pointer}.blog-prose .blog-btn:hover{opacity:.92}.blog-prose .blog-btn--primary{background:var(--blog-accent);color:#fff!important}.blog-prose .blog-btn--secondary{background:var(--blog-ink);color:var(--blog-paper)!important}.blog-prose .blog-btn--outline{background:transparent;border-color:var(--blog-ink);color:var(--blog-ink)!important}.blog-prose .blog-btn--ghost{background:transparent;color:var(--blog-accent)!important;padding-left:.35rem;padding-right:.35rem}.blog-prose .blog-btn--pill{background:var(--blog-accent);color:#fff!important;border-radius:999px;padding-left:1.35rem;padding-right:1.35rem}.blog-prose .blog-toggle{margin:1rem 0;font-family:var(--blog-sans)}.blog-prose .blog-toggle>summary{cursor:pointer;font-weight:600;list-style:none;padding:.55rem 0;color:var(--blog-ink)}.blog-prose .blog-toggle>summary::-webkit-details-marker{display:none}.blog-prose .blog-toggle>summary:before{content:"\25b8";display:inline-block;margin-right:.45rem;transition:transform .15s ease;color:var(--blog-muted)}.blog-prose .blog-toggle[open]>summary:before{transform:rotate(90deg)}.blog-prose .blog-toggle__body{padding:.35rem 0 .75rem 1.15rem;color:var(--blog-muted);line-height:1.6}.blog-prose .blog-toggle--bordered{border:1px solid var(--blog-rule-light);border-radius:10px;padding:0 .9rem;background:var(--blog-card)}.blog-prose .blog-toggle--filled{background:color-mix(in srgb,var(--blog-ink) 4%,var(--blog-card));border-radius:10px;padding:0 .9rem}.blog-prose .blog-bookmark{display:flex;flex-direction:column;gap:.25rem;margin:1.25rem 0;padding:.9rem 1.05rem;border:1px solid var(--blog-rule-light);border-radius:12px;background:var(--blog-card);text-decoration:none!important;color:inherit;font-family:var(--blog-sans);transition:border-color .15s ease,box-shadow .15s ease}.blog-prose .blog-bookmark:hover{border-color:color-mix(in srgb,var(--blog-accent) 45%,var(--blog-rule-light));box-shadow:0 4px 16px color-mix(in srgb,var(--blog-ink) 6%,transparent)}.blog-prose .blog-bookmark__title{font-weight:650;font-size:1rem;color:var(--blog-ink)}.blog-prose .blog-bookmark__desc{font-size:.9rem;color:var(--blog-muted);line-height:1.45}.blog-prose .blog-bookmark__url{font-size:.78rem;color:var(--blog-accent);word-break:break-all}.blog-prose .blog-bookmark--compact{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:.5rem .85rem;padding:.65rem .9rem}.blog-prose .blog-bookmark--compact .blog-bookmark__desc{display:none}.blog-prose .blog-bookmark--large{padding:1.15rem 1.25rem}.blog-prose .blog-bookmark--large .blog-bookmark__title{font-size:1.15rem}.blog-prose .blog-equation{margin:1.25rem 0;padding:.85rem 1rem;text-align:center;overflow-x:auto;background:var(--blog-card);border:1px solid var(--blog-rule-light);border-radius:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1rem}.blog-prose .blog-equation code{background:none;border:none;padding:0;font-size:inherit}.blog-prose .blog-equation--inline{display:inline-block;margin:0 .25rem;padding:.15rem .45rem;vertical-align:middle}.blog-prose .blog-html{margin:1.25rem 0}.blog-prose .blog-html--full{width:100%}.blog-prose .blog-file{margin:1.15rem 0;font-family:var(--blog-sans)}.blog-prose .blog-file--inline a{font-weight:550}.blog-prose .blog-file--card a{display:flex;flex-direction:column;gap:.2rem;padding:.85rem 1rem;border:1px solid var(--blog-rule-light);border-radius:12px;background:var(--blog-card);text-decoration:none!important;color:inherit;transition:border-color .15s ease}.blog-prose .blog-file--card a:hover{border-color:color-mix(in srgb,var(--blog-accent) 40%,var(--blog-rule-light))}.blog-prose .blog-file--card strong{color:var(--blog-ink);font-size:.98rem}.blog-prose .blog-file--card span{font-size:.82rem;color:var(--blog-muted)}.blog-prose .blog-audio{margin:1.5rem 0}.blog-prose .blog-audio audio{width:100%;display:block}.blog-prose .blog-audio figcaption{font-family:var(--blog-sans);font-size:.8rem;color:var(--blog-muted);margin-top:.45rem;text-align:center}.blog-prose .blog-audio--minimal audio{height:36px}.blog-prose .blog-timeline{list-style:none;margin:1.5rem 0;padding:0 0 0 .25rem;border-left:2px solid var(--blog-rule-light);font-family:var(--blog-sans)}.blog-prose .blog-timeline__item{position:relative;padding:0 0 1.25rem 1.35rem;margin:0}.blog-prose .blog-timeline__item:last-child{padding-bottom:0}.blog-prose .blog-timeline__marker{position:absolute;left:-.45rem;top:.2rem;width:.7rem;height:.7rem;border-radius:50%;background:var(--blog-accent);border:2px solid var(--blog-paper);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;font-size:0}.blog-prose .blog-timeline--numbered .blog-timeline__marker{left:-.7rem;top:0;width:1.25rem;height:1.25rem;font-size:.65rem;font-weight:700;color:#fff;background:var(--blog-accent)}.blog-prose .blog-timeline__item strong{display:block;color:var(--blog-ink);font-size:.98rem;margin-bottom:.15rem}.blog-prose .blog-timeline__item time{display:block;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--blog-muted);margin-bottom:.25rem}.blog-prose .blog-timeline__item p{margin:.2rem 0 0;font-size:.92rem;color:var(--blog-muted);line-height:1.5}.blog-prose .blog-timeline--compact .blog-timeline__item{padding-bottom:.7rem}.blog-prose .blog-stats{display:grid;gap:1rem;margin:1.5rem 0;font-family:var(--blog-sans)}.blog-prose .blog-stats--2{grid-template-columns:repeat(2,1fr)}.blog-prose .blog-stats--3{grid-template-columns:repeat(3,1fr)}.blog-prose .blog-stats--4{grid-template-columns:repeat(4,1fr)}.blog-prose .blog-stats--stacked{grid-template-columns:1fr}.blog-prose .blog-stat{text-align:center;padding:1rem .75rem;border:1px solid var(--blog-rule-light);border-radius:12px;background:var(--blog-card)}.blog-prose .blog-stat__value{font-family:var(--blog-display);font-size:1.65rem;font-weight:700;line-height:1.15;letter-spacing:-.02em;color:var(--blog-ink)}.blog-prose .blog-stat__label{margin-top:.3rem;font-size:.8rem;color:var(--blog-muted);letter-spacing:.02em}@media (max-width: 560px){.blog-prose .blog-stats--3,.blog-prose .blog-stats--4{grid-template-columns:repeat(2,1fr)}}.blog-prose .blog-toc{margin:1.5rem 0;padding:1rem 1.15rem;border:1px solid var(--blog-rule-light);border-radius:12px;background:var(--blog-card);font-family:var(--blog-sans);font-size:.95rem}.blog-prose .blog-toc ol,.blog-prose .blog-toc ul{margin:0;padding-left:1.2rem}.blog-prose .blog-toc li{margin:.35rem 0}.blog-prose .blog-toc--compact{padding:.7rem .9rem;font-size:.88rem}.blog-prose .blog-toc__empty{margin:0;color:var(--blog-muted);font-size:.9rem}.blog-prose .blog-spacer{display:block;width:100%;pointer-events:none}.blog-tag{text-decoration:none}.blog-tag:hover{color:var(--blog-ink);border-color:var(--blog-ink)}.blog-article__kicker a{color:inherit;text-decoration:none}.blog-article__kicker a:hover{text-decoration:underline;text-underline-offset:2px}[data-edit-mode=true] [data-makr-edit]{cursor:pointer;outline:1px dashed transparent;outline-offset:4px;transition:outline-color .12s ease,background-color .12s ease;border-radius:2px}[data-edit-mode=true] [data-makr-edit]:hover{outline-color:var(--blog-accent);background-color:color-mix(in srgb,var(--blog-accent) 6%,transparent)}[data-edit-mode=true] [data-makr-edit]:focus-visible{outline:2px solid var(--blog-accent)}@media (max-width: 560px){.blog-neighbors{grid-template-columns:1fr}.blog-neighbors__next{text-align:left;justify-self:start}}

/* ─── template styles (styles.css) ─── */
/* Essay (minimal) — typography-first blog template */

@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&family=Inter:wght@400;500;600&display=swap");

:root {
  --blog-paper: #fafafa;
  --blog-ink: #171717;
  --blog-muted: #737373;
  --blog-rule: #171717;
  --blog-rule-light: #e5e5e5;
  --blog-accent: #2563eb;
  --blog-card: #ffffff;
  --blog-max: 38rem;
  --blog-wide: 42rem;
  --blog-serif: "Source Serif 4", "Iowan Old Style", Georgia, serif;
  --blog-display: "Source Serif 4", Georgia, serif;
  --blog-sans: Inter, system-ui, -apple-system, sans-serif;
}

.blog-essay {
  min-height: 100vh;
  background: var(--blog-paper);
  color: var(--blog-ink);
  font-family: var(--blog-serif);
  font-size: 1.125rem;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}

/* Density tokens */
.blog-essay[data-density="compact"] {
  font-size: 0.98rem;
  line-height: 1.55;
}
.blog-essay[data-density="compact"] .blog-shell {
  padding-top: 0.85rem;
  padding-bottom: 2.5rem;
}
.blog-essay[data-density="compact"] .blog-post-list > li {
  padding: 1rem 0;
}
.blog-essay[data-density="airy"] {
  font-size: 1.1rem;
  line-height: 1.8;
}
.blog-essay[data-density="airy"] .blog-shell {
  padding-top: 1.75rem;
  padding-bottom: 5rem;
}
.blog-essay[data-density="airy"] .blog-post-list > li {
  padding: 2rem 0;
}

.blog-essay a {
  color: inherit;
}

/* ── Shell ─────────────────────────────────────────────────────────────── */

.blog-shell {
  max-width: var(--blog-wide);
  margin: 0 auto;
  padding: 2.5rem 1.5rem 5rem;
}

.blog-topbar {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  font-family: var(--blog-sans);
  font-size: 0.8rem;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--blog-muted);
  padding-bottom: 1rem;
  border-bottom: none;
}

.blog-topbar a {
  text-decoration: none;
}

.blog-topbar a:hover {
  color: var(--blog-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.blog-masthead {
  text-align: left;
  padding: 2rem 0 1.5rem;
  border-bottom: 1px solid var(--blog-rule-light);
  margin-bottom: 2.5rem;
}

.blog-masthead__title {
  font-family: var(--blog-display);
  font-weight: 600;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  line-height: 1.2;
  letter-spacing: -0.03em;
  margin: 0;
}

.blog-masthead__title a {
  text-decoration: none;
}

.blog-masthead__deck {
  font-family: var(--blog-sans);
  font-size: 0.95rem;
  letter-spacing: 0;
  text-transform: none;
  color: var(--blog-muted);
  margin: 0.5rem 0 0;
  line-height: 1.5;
}

.blog-masthead__rule {
  display: none;
  justify-content: flex-start;
  gap: 0.75rem;
  align-items: center;
  margin-top: 1rem;
  font-family: var(--blog-sans);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blog-muted);
}

.blog-masthead__rule::before,
.blog-masthead__rule::after {
  content: "";
  height: 1px;
  width: 3.5rem;
  background: var(--blog-rule-light);
}

/* ── Index ─────────────────────────────────────────────────────────────── */

.blog-index-intro {
  max-width: var(--blog-max);
  margin: 0 auto 2.5rem;
  text-align: left;
}

.blog-index-intro h1 {
  font-family: var(--blog-display);
  font-size: clamp(1.5rem, 3vw, 1.9rem);
  font-weight: 600;
  margin: 0 0 0.5rem;
  letter-spacing: -0.02em;
}

.blog-index-intro p {
  margin: 0;
  color: var(--blog-muted);
  font-size: 0.98rem;
  line-height: 1.6;
}

.blog-section-label {
  font-family: var(--blog-sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--blog-muted);
  border-bottom: 1px solid var(--blog-rule-light);
  padding-bottom: 0.6rem;
  margin: 0 0 0;
}

.blog-post-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.blog-post-list > li {
  border-bottom: 1px solid var(--blog-rule-light);
  padding: 1.75rem 0;
}

.blog-post-list > li:first-child {
  border-top: 1px solid var(--blog-rule-light);
}

.blog-post-card {
  display: grid;
  gap: 0.5rem;
}

.blog-post-card__cover-link {
  display: block;
  text-decoration: none;
}

.blog-post-card__cover {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
  border-radius: 2px;
  background: var(--blog-card);
}

.blog-post-card__body {
  display: grid;
  gap: 0.4rem;
}

.blog-post-card__kicker {
  font-family: var(--blog-sans);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--blog-accent);
}

.blog-post-card__title {
  font-family: var(--blog-display);
  font-size: clamp(1.3rem, 2.6vw, 1.65rem);
  font-weight: 600;
  line-height: 1.25;
  margin: 0;
  letter-spacing: -0.015em;
}

.blog-post-card__title a {
  text-decoration: none;
}

.blog-post-card__title a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

.blog-post-card__dek {
  margin: 0;
  color: var(--blog-muted);
  font-size: 1rem;
  line-height: 1.6;
  max-width: 38rem;
}

.blog-post-card__meta {
  font-family: var(--blog-sans);
  font-size: 0.8rem;
  color: var(--blog-muted);
  letter-spacing: 0.01em;
}

/* Index: grid */
.blog-post-list--grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--blog-rule-light);
}
.blog-post-list--grid > li {
  border-bottom: 1px solid var(--blog-rule-light);
  padding: 1.5rem;
}
.blog-post-list--grid > li:nth-child(odd) {
  border-right: 1px solid var(--blog-rule-light);
}
.blog-post-list--grid > li:first-child {
  border-top: none;
}
.blog-post-list--grid .blog-post-card__title {
  font-size: clamp(1.15rem, 2.2vw, 1.4rem);
}

/* Index: featured lead */
.blog-index--featured {
  border-top: 1px solid var(--blog-rule-light);
}
.blog-index__lead {
  padding: 1.75rem 0 1.5rem;
  border-bottom: 1px solid var(--blog-rule-light);
  margin-bottom: 0;
}
.blog-post-card--featured .blog-post-card__title {
  font-size: clamp(1.85rem, 4.5vw, 2.6rem);
  line-height: 1.1;
}
.blog-post-card--featured .blog-post-card__dek {
  font-size: 1.08rem;
  max-width: 38rem;
}
.blog-post-card--featured .blog-post-card__cover {
  aspect-ratio: 2 / 1;
  margin-bottom: 0.9rem;
}

@media (max-width: 640px) {
  .blog-post-list--grid {
    grid-template-columns: 1fr;
  }
  .blog-post-list--grid > li:nth-child(odd) {
    border-right: none;
  }
}

.blog-empty {
  font-family: var(--blog-sans);
  color: var(--blog-muted);
  text-align: center;
  padding: 3rem 1rem;
  border-top: 1px solid var(--blog-rule-light);
  border-bottom: 1px solid var(--blog-rule-light);
}

/* ── Post ──────────────────────────────────────────────────────────────── */

.blog-article {
  max-width: var(--blog-max);
  margin: 0 auto;
}

.blog-article--narrow {
  max-width: 36rem;
}

.blog-article--cover-hero .blog-article__cover {
  margin: 0 0 1.75rem;
  max-height: 20rem;
  object-fit: cover;
  width: 100%;
  border-radius: 2px;
}

.blog-article--cover-hero .blog-article__title {
  font-size: clamp(2rem, 5vw, 2.9rem);
}

.blog-article__kicker {
  font-family: var(--blog-sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--blog-accent);
  margin: 0 0 0.75rem;
}

.blog-article__title {
  font-family: var(--blog-display);
  font-size: clamp(1.9rem, 4.5vw, 2.7rem);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -0.02em;
  margin: 0 0 0.85rem;
}

.blog-article__dek {
  font-size: 1.2rem;
  color: var(--blog-muted);
  margin: 0 0 1.1rem;
  line-height: 1.55;
  font-family: var(--blog-serif);
}

.blog-article__dateline {
  font-family: var(--blog-sans);
  font-size: 0.82rem;
  letter-spacing: 0.01em;
  color: var(--blog-muted);
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--blog-rule-light);
  margin-bottom: 2rem;
}

.blog-article__cover {
  width: 100%;
  display: block;
  margin: 0 0 1.9rem;
  border-radius: 2px;
}

/* Drop cap on the opening paragraph of a long read */
.blog-article--narrow .blog-prose > p:first-of-type::first-letter,
.blog-article:not(.blog-article--cover-hero) .blog-prose > p:first-of-type::first-letter {
  float: left;
  font-family: var(--blog-display);
  font-size: 3.6em;
  line-height: 0.78;
  font-weight: 600;
  padding: 0.06em 0.12em 0 0;
  color: var(--blog-ink);
}

.blog-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 2.25rem 0 0;
  font-family: var(--blog-sans);
}

.blog-tag {
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.25rem 0.55rem;
  border: 1px solid var(--blog-rule-light);
  color: var(--blog-muted);
  border-radius: 999px;
}

/* Neighbors */
.blog-neighbors {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 3.5rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--blog-rule-light);
  font-family: var(--blog-sans);
  font-size: 0.9rem;
}

.blog-neighbors a {
  text-decoration: none;
  max-width: 100%;
}

.blog-neighbors a:hover .blog-neighbors__title {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.blog-neighbors__label {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--blog-muted);
  margin-bottom: 0.4rem;
}

.blog-neighbors__title {
  font-family: var(--blog-display);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
}

.blog-neighbors__next {
  text-align: right;
  justify-self: end;
}

/* Pagination (static multi-page index / tag) */
.blog-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 2.5rem 0 0;
  padding: 1rem 0 0;
  border-top: 1px solid var(--blog-rule-light);
  font-family: var(--blog-sans);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.blog-pagination__link {
  color: var(--blog-ink);
  text-decoration: none;
}
.blog-pagination__link:hover {
  color: var(--blog-accent);
  text-decoration: underline;
}
.blog-pagination__link--disabled {
  color: var(--blog-muted);
  opacity: 0.45;
  pointer-events: none;
}
.blog-pagination__status {
  color: var(--blog-muted);
  font-weight: 500;
  letter-spacing: 0.06em;
}

/* Primary navigation (from manifest.navigation) */
.blog-primary-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.25rem;
  margin: 0 0 1.75rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--blog-rule-light);
  font-family: var(--blog-sans);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.blog-primary-nav a {
  color: var(--blog-ink);
  text-decoration: none;
}
.blog-primary-nav a:hover {
  color: var(--blog-accent);
  text-decoration: underline;
}
.blog-primary-nav__placeholder {
  color: var(--blog-muted);
  font-weight: 500;
  font-style: italic;
  text-transform: none;
  letter-spacing: 0;
}

/* Footer */
.blog-footer {
  margin-top: 4rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--blog-rule-light);
  font-family: var(--blog-sans);
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--blog-muted);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.blog-footer a {
  text-decoration: none;
}

.blog-footer a:hover {
  color: var(--blog-ink);
  text-decoration: underline;
}

.blog-footer__links {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
}

/* Tag archive */
.blog-tag-archive__eyebrow {
  font-family: var(--blog-sans);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--blog-accent);
  margin: 0 0 0.35rem;
}

/* Series */
.blog-series {
  margin: 0 0 1.75rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--blog-rule-light);
  background: var(--blog-card);
  font-family: var(--blog-sans);
}
.blog-series__label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--blog-accent);
  margin-bottom: 0.55rem;
}
.blog-series__list {
  margin: 0;
  padding-left: 0;
  list-style: none;
  font-size: 0.9rem;
  line-height: 1.55;
}
.blog-series__list li {
  margin: 0.25rem 0;
}
.blog-series__list li.is-current {
  font-weight: 600;
}
.blog-series__list a {
  color: inherit;
  text-underline-offset: 2px;
}
.blog-series__num {
  color: var(--blog-muted);
  font-size: 0.8rem;
}

/* Related */
.blog-related {
  margin-top: 2.5rem;
}
.blog-related__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.blog-related__list > li {
  padding: 1rem 0;
  border-bottom: 1px solid var(--blog-rule-light);
}
.blog-related__list a {
  font-family: var(--blog-display);
  font-weight: 700;
  font-size: 1.15rem;
  text-decoration: none;
}
.blog-related__list a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.blog-related__dek {
  margin: 0.35rem 0 0;
  color: var(--blog-muted);
  font-size: 0.95rem;
}


/* ═══════════════════════════════════════════════════════
   Rich prose components — shared by essay / magazine / newspaper
   Classes match apps/dashboard rich-blocks/render.ts +
   apps/publisher story-blocks.ts so preview === publish === editor.
   ═══════════════════════════════════════════════════════ */

/* ── Base prose (writer-owned body) ───────────────────── */

.blog-prose {
  font-size: 1.05rem;
  line-height: 1.75;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.blog-prose > *:first-child {
  margin-top: 0;
}

.blog-prose h1,
.blog-prose h2,
.blog-prose h3,
.blog-prose h4,
.blog-prose .blog-h {
  font-family: var(--blog-display);
  line-height: 1.25;
  letter-spacing: -0.015em;
  margin: 2rem 0 0.65rem;
  font-weight: 700;
  color: var(--blog-ink);
}

.blog-prose h1,
.blog-prose .blog-h--1 {
  font-size: 1.75rem;
}
.blog-prose h2,
.blog-prose .blog-h--2 {
  font-size: 1.4rem;
}
.blog-prose h3,
.blog-prose .blog-h--3 {
  font-size: 1.15rem;
  font-weight: 650;
}
.blog-prose h4,
.blog-prose .blog-h--4 {
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.blog-prose p,
.blog-prose .blog-p {
  margin: 0 0 1.15rem;
}

.blog-prose .blog-p--lead {
  font-size: 1.2rem;
  line-height: 1.65;
  color: var(--blog-muted);
}

.blog-prose .blog-p--small {
  font-size: 0.875rem;
  line-height: 1.55;
  color: var(--blog-muted);
}

.blog-prose .blog-p--dropcap::first-letter {
  float: left;
  font-family: var(--blog-display);
  font-size: 3.4em;
  line-height: 0.85;
  font-weight: 700;
  padding: 0.08em 0.12em 0 0;
  color: var(--blog-ink);
}

.blog-prose a {
  color: var(--blog-accent);
  text-underline-offset: 2px;
}

.blog-prose a:hover {
  text-decoration-thickness: 2px;
}

.blog-prose strong,
.blog-prose b {
  font-weight: 700;
}

.blog-prose em,
.blog-prose i {
  font-style: italic;
}

.blog-prose u {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.blog-prose s,
.blog-prose del {
  text-decoration: line-through;
  opacity: 0.85;
}

.blog-prose mark {
  background: color-mix(in srgb, var(--blog-accent) 22%, transparent);
  color: inherit;
  padding: 0.05em 0.15em;
  border-radius: 2px;
}

.blog-prose sub,
.blog-prose sup {
  font-size: 0.75em;
  line-height: 0;
}

/* Alignment helpers from renderRichBlock */
.blog-prose .blog-align-center {
  text-align: center;
}
.blog-prose .blog-align-right {
  text-align: right;
}
.blog-prose .blog-align-justify {
  text-align: justify;
}

/* ── Lists ────────────────────────────────────────────── */

.blog-prose ul,
.blog-prose ol,
.blog-prose .blog-ul,
.blog-prose .blog-ol {
  padding-left: 1.35rem;
  margin: 0 0 1.15rem;
}

.blog-prose li {
  margin: 0.25rem 0;
}

.blog-prose .blog-ul {
  list-style: disc;
}

.blog-prose .blog-ul--dash {
  list-style: none;
  padding-left: 0.15rem;
}
.blog-prose .blog-ul--dash > li {
  position: relative;
  padding-left: 1.25rem;
}
.blog-prose .blog-ul--dash > li::before {
  content: "–";
  position: absolute;
  left: 0.15rem;
  color: var(--blog-muted);
  font-weight: 600;
}

.blog-prose .blog-ul--check {
  list-style: none;
  padding-left: 0.15rem;
}
.blog-prose .blog-ul--check > li {
  position: relative;
  padding-left: 1.5rem;
}
.blog-prose .blog-ul--check > li::before {
  content: "✓";
  position: absolute;
  left: 0.1rem;
  color: var(--blog-accent);
  font-weight: 700;
  font-size: 0.9em;
}

.blog-prose .blog-ol--decimal {
  list-style: decimal;
}
.blog-prose .blog-ol--alpha {
  list-style: lower-alpha;
}
.blog-prose .blog-ol--roman {
  list-style: lower-roman;
}

/* To-do */
.blog-prose .blog-todo {
  list-style: none;
  padding-left: 0;
  margin: 0 0 1.25rem;
}
.blog-prose .blog-todo__item {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0.4rem 0;
  line-height: 1.5;
}
.blog-prose .blog-todo__item input[type="checkbox"] {
  margin-top: 0.3em;
  flex-shrink: 0;
  accent-color: var(--blog-accent);
}
.blog-prose .blog-todo__item.is-done span,
.blog-prose .blog-todo__item.is-done {
  color: var(--blog-muted);
  text-decoration: line-through;
}
.blog-prose .blog-todo--bordered .blog-todo__item {
  border: 1px solid var(--blog-rule-light);
  border-radius: 10px;
  padding: 0.55rem 0.75rem;
  background: var(--blog-card);
  text-decoration: none;
}
.blog-prose .blog-todo--bordered .blog-todo__item.is-done span {
  text-decoration: line-through;
}

/* ── Quotes ───────────────────────────────────────────── */

.blog-prose blockquote,
.blog-prose .blog-quote {
  margin: 1.5rem 0;
  padding: 0.25rem 0 0.25rem 1.15rem;
  border-left: 3px solid var(--blog-ink);
  font-style: italic;
  color: var(--blog-muted);
}

.blog-prose .blog-quote p {
  margin: 0;
}

.blog-prose .blog-quote--pull,
.blog-prose .blog-pullquote {
  margin: 2rem 0;
  padding: 0.5rem 0 0.5rem 1.25rem;
  border-left: 4px solid var(--blog-accent);
  font-family: var(--blog-display);
  font-size: 1.35rem;
  font-style: italic;
  line-height: 1.4;
  color: var(--blog-ink);
}

.blog-prose .blog-quote--large {
  margin: 2rem 0;
  padding: 1rem 0;
  border-left: none;
  font-family: var(--blog-display);
  font-size: 1.55rem;
  font-style: normal;
  font-weight: 600;
  line-height: 1.35;
  color: var(--blog-ink);
  text-align: center;
}

.blog-prose .blog-quote--bordered {
  margin: 1.5rem 0;
  padding: 1rem 1.15rem;
  border: 1px solid var(--blog-rule-light);
  border-left: 3px solid var(--blog-ink);
  border-radius: 0 10px 10px 0;
  background: var(--blog-card);
  font-style: italic;
  color: var(--blog-muted);
}

/* ── Callouts ─────────────────────────────────────────── */

.blog-prose .blog-callout {
  margin: 1.5rem 0;
  padding: 0.9rem 1.1rem;
  border: 1px solid var(--blog-rule-light);
  border-radius: 10px;
  background: var(--blog-card);
  font-family: var(--blog-sans);
  font-size: 0.95rem;
  line-height: 1.6;
}

.blog-prose .blog-callout--note {
  border-left: 3px solid var(--blog-accent);
  background: color-mix(in srgb, var(--blog-accent) 6%, var(--blog-card));
}
.blog-prose .blog-callout--tip {
  border-left: 3px solid #2d5a3d;
  background: color-mix(in srgb, #2d5a3d 8%, var(--blog-card));
}
.blog-prose .blog-callout--warn {
  border-left: 3px solid #b45309;
  background: color-mix(in srgb, #b45309 8%, var(--blog-card));
}
.blog-prose .blog-callout--success {
  border-left: 3px solid #15803d;
  background: color-mix(in srgb, #15803d 8%, var(--blog-card));
}
.blog-prose .blog-callout--info {
  border-left: 3px solid #1d4ed8;
  background: color-mix(in srgb, #1d4ed8 8%, var(--blog-card));
}

.blog-prose .blog-callout__label {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 0.35rem;
  color: var(--blog-muted);
}

.blog-prose .blog-callout__body {
  color: var(--blog-ink);
}
.blog-prose .blog-callout__body p:last-child {
  margin-bottom: 0;
}

/* ── Code ─────────────────────────────────────────────── */

.blog-prose pre,
.blog-prose .blog-code {
  overflow-x: auto;
  padding: 1rem 1.1rem;
  background: var(--blog-card);
  border: 1px solid var(--blog-rule-light);
  border-radius: 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.85rem;
  line-height: 1.5;
  margin: 0 0 1.25rem;
}

.blog-prose .blog-code code {
  background: none;
  border: none;
  padding: 0;
  font-size: inherit;
  color: inherit;
}

.blog-prose .blog-code--terminal {
  background: #0f172a;
  border-color: #1e293b;
  color: #e2e8f0;
}
.blog-prose .blog-code--terminal code {
  color: #e2e8f0;
}

.blog-prose .blog-code--numbered {
  counter-reset: blog-line;
}
.blog-prose .blog-code--numbered code {
  display: block;
  white-space: pre;
}

.blog-prose code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.9em;
}

.blog-prose p code,
.blog-prose li code,
.blog-prose td code {
  background: var(--blog-card);
  border: 1px solid var(--blog-rule-light);
  padding: 0.08em 0.35em;
  border-radius: 4px;
}

/* ── Images & figures ─────────────────────────────────── */

.blog-prose img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 1.25rem 0;
}

.blog-prose .blog-figure {
  margin: 1.5rem 0;
}
.blog-prose .blog-figure img {
  margin: 0;
  width: 100%;
  border: 1px solid var(--blog-rule-light);
  border-radius: 4px;
}
.blog-prose .blog-figure figcaption {
  font-family: var(--blog-sans);
  font-size: 0.8rem;
  color: var(--blog-muted);
  margin-top: 0.45rem;
  text-align: center;
}

.blog-prose .blog-figure--contained {
  max-width: 85%;
  margin-left: auto;
  margin-right: auto;
}
.blog-prose .blog-figure--rounded img {
  border-radius: 14px;
}
.blog-prose .blog-figure--float-left {
  float: left;
  max-width: min(48%, 280px);
  margin: 0.25rem 1.25rem 1rem 0;
}
.blog-prose .blog-figure--float-right {
  float: right;
  max-width: min(48%, 280px);
  margin: 0.25rem 0 1rem 1.25rem;
}

/* Gallery */
.blog-prose .blog-gallery {
  display: grid;
  gap: 0.65rem;
  margin: 1.5rem 0;
}
.blog-prose .blog-gallery--grid-2 {
  grid-template-columns: repeat(2, 1fr);
}
.blog-prose .blog-gallery--grid-3 {
  grid-template-columns: repeat(3, 1fr);
}
.blog-prose .blog-gallery--grid-4 {
  grid-template-columns: repeat(4, 1fr);
}
.blog-prose .blog-gallery--mosaic {
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 120px;
}
.blog-prose .blog-gallery--mosaic .blog-gallery__item:first-child {
  grid-column: span 2;
  grid-row: span 2;
}
.blog-prose .blog-gallery__item {
  margin: 0;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid var(--blog-rule-light);
}
.blog-prose .blog-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  margin: 0;
  display: block;
  border: 0;
}
.blog-prose .blog-gallery__caption {
  grid-column: 1 / -1;
  font-family: var(--blog-sans);
  font-size: 0.8rem;
  color: var(--blog-muted);
  text-align: center;
  margin-top: 0.15rem;
}

@media (max-width: 560px) {
  .blog-prose .blog-gallery--grid-3,
  .blog-prose .blog-gallery--grid-4,
  .blog-prose .blog-gallery--mosaic {
    grid-template-columns: repeat(2, 1fr);
  }
  .blog-prose .blog-gallery--mosaic .blog-gallery__item:first-child {
    grid-column: span 1;
    grid-row: span 1;
  }
  .blog-prose .blog-figure--float-left,
  .blog-prose .blog-figure--float-right {
    float: none;
    max-width: 100%;
    margin: 1.25rem 0;
  }
}

/* ── Embeds ───────────────────────────────────────────── */

.blog-prose .blog-embed {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 1.5rem 0;
  border: 1px solid var(--blog-rule-light);
  border-radius: 10px;
  background: var(--blog-card);
  overflow: hidden;
}
.blog-prose .blog-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.blog-prose .blog-embed--wide {
  width: min(100vw - 2rem, calc(100% + 4rem));
  margin-left: 50%;
  transform: translateX(-50%);
}
.blog-prose .blog-embed--compact {
  max-width: 28rem;
  margin-left: auto;
  margin-right: auto;
}
.blog-prose .blog-embed-fallback {
  margin: 1rem 0;
  font-family: var(--blog-sans);
  font-size: 0.95rem;
}

/* ── Dividers ─────────────────────────────────────────── */

.blog-prose hr,
.blog-prose .blog-divider {
  border: 0;
  border-top: 1px solid var(--blog-rule-light);
  margin: 2rem 0;
}

.blog-prose .blog-divider--thick {
  border-top-width: 3px;
  border-top-color: var(--blog-ink);
}

.blog-prose .blog-divider--dots {
  border: 0;
  height: auto;
  text-align: center;
  margin: 2rem 0;
  background: none;
  line-height: 1;
  letter-spacing: 0.55em;
  color: var(--blog-muted);
}
.blog-prose .blog-divider--dots::before {
  content: "···";
  font-size: 1.25rem;
}

.blog-prose .blog-divider--gradient {
  border: 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--blog-accent),
    transparent
  );
}

/* ── Tables ───────────────────────────────────────────── */

.blog-prose .blog-table-wrap {
  overflow-x: auto;
  margin: 1.5rem 0;
  border: 1px solid var(--blog-rule-light);
  border-radius: 10px;
  background: var(--blog-card);
}

.blog-prose .blog-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--blog-sans);
  font-size: 0.92rem;
  line-height: 1.45;
}

.blog-prose .blog-table th,
.blog-prose .blog-table td {
  padding: 0.65rem 0.85rem;
  text-align: left;
  border-bottom: 1px solid var(--blog-rule-light);
  vertical-align: top;
}

.blog-prose .blog-table th {
  font-weight: 650;
  background: color-mix(in srgb, var(--blog-ink) 4%, var(--blog-card));
  color: var(--blog-ink);
}

.blog-prose .blog-table tr:last-child td {
  border-bottom: 0;
}

.blog-prose .blog-table--striped tbody tr:nth-child(even) {
  background: color-mix(in srgb, var(--blog-ink) 3%, transparent);
}

.blog-prose .blog-table--bordered th,
.blog-prose .blog-table--bordered td {
  border: 1px solid var(--blog-rule-light);
}

.blog-prose .blog-table--compact th,
.blog-prose .blog-table--compact td {
  padding: 0.4rem 0.55rem;
  font-size: 0.85rem;
}

.blog-prose .blog-table--header-accent thead th {
  background: color-mix(in srgb, var(--blog-accent) 12%, var(--blog-card));
  color: var(--blog-ink);
  border-bottom: 2px solid var(--blog-accent);
}

/* ── Columns ──────────────────────────────────────────── */

.blog-prose .blog-columns {
  display: grid;
  gap: 1.25rem;
  margin: 1.5rem 0;
}
.blog-prose .blog-columns--2 {
  grid-template-columns: 1fr 1fr;
}
.blog-prose .blog-columns--3 {
  grid-template-columns: 1fr 1fr 1fr;
}
.blog-prose .blog-columns--2-1 {
  grid-template-columns: 2fr 1fr;
}
.blog-prose .blog-columns--1-2 {
  grid-template-columns: 1fr 2fr;
}
.blog-prose .blog-col > *:first-child {
  margin-top: 0;
}
.blog-prose .blog-col > *:last-child {
  margin-bottom: 0;
}

@media (max-width: 640px) {
  .blog-prose .blog-columns--2,
  .blog-prose .blog-columns--3,
  .blog-prose .blog-columns--2-1,
  .blog-prose .blog-columns--1-2 {
    grid-template-columns: 1fr;
  }
}

/* ── Buttons ──────────────────────────────────────────── */

.blog-prose .blog-btn-wrap {
  margin: 1.25rem 0;
}

.blog-prose .blog-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.65rem 1.15rem;
  border-radius: 10px;
  font-family: var(--blog-sans);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none !important;
  border: 1px solid transparent;
  transition: opacity 0.15s ease, transform 0.15s ease, background 0.15s ease,
    color 0.15s ease, border-color 0.15s ease;
  cursor: pointer;
}

.blog-prose .blog-btn:hover {
  opacity: 0.92;
}

.blog-prose .blog-btn--primary {
  background: var(--blog-accent);
  color: #fff !important;
}
.blog-prose .blog-btn--secondary {
  background: var(--blog-ink);
  color: var(--blog-paper) !important;
}
.blog-prose .blog-btn--outline {
  background: transparent;
  border-color: var(--blog-ink);
  color: var(--blog-ink) !important;
}
.blog-prose .blog-btn--ghost {
  background: transparent;
  color: var(--blog-accent) !important;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}
.blog-prose .blog-btn--pill {
  background: var(--blog-accent);
  color: #fff !important;
  border-radius: 999px;
  padding-left: 1.35rem;
  padding-right: 1.35rem;
}

/* ── Toggle / details ─────────────────────────────────── */

.blog-prose .blog-toggle {
  margin: 1rem 0;
  font-family: var(--blog-sans);
}
.blog-prose .blog-toggle > summary {
  cursor: pointer;
  font-weight: 600;
  list-style: none;
  padding: 0.55rem 0;
  color: var(--blog-ink);
}
.blog-prose .blog-toggle > summary::-webkit-details-marker {
  display: none;
}
.blog-prose .blog-toggle > summary::before {
  content: "▸";
  display: inline-block;
  margin-right: 0.45rem;
  transition: transform 0.15s ease;
  color: var(--blog-muted);
}
.blog-prose .blog-toggle[open] > summary::before {
  transform: rotate(90deg);
}
.blog-prose .blog-toggle__body {
  padding: 0.35rem 0 0.75rem 1.15rem;
  color: var(--blog-muted);
  line-height: 1.6;
}
.blog-prose .blog-toggle--bordered {
  border: 1px solid var(--blog-rule-light);
  border-radius: 10px;
  padding: 0 0.9rem;
  background: var(--blog-card);
}
.blog-prose .blog-toggle--filled {
  background: color-mix(in srgb, var(--blog-ink) 4%, var(--blog-card));
  border-radius: 10px;
  padding: 0 0.9rem;
}

/* ── Bookmark ─────────────────────────────────────────── */

.blog-prose .blog-bookmark {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin: 1.25rem 0;
  padding: 0.9rem 1.05rem;
  border: 1px solid var(--blog-rule-light);
  border-radius: 12px;
  background: var(--blog-card);
  text-decoration: none !important;
  color: inherit;
  font-family: var(--blog-sans);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.blog-prose .blog-bookmark:hover {
  border-color: color-mix(in srgb, var(--blog-accent) 45%, var(--blog-rule-light));
  box-shadow: 0 4px 16px color-mix(in srgb, var(--blog-ink) 6%, transparent);
}
.blog-prose .blog-bookmark__title {
  font-weight: 650;
  font-size: 1rem;
  color: var(--blog-ink);
}
.blog-prose .blog-bookmark__desc {
  font-size: 0.9rem;
  color: var(--blog-muted);
  line-height: 1.45;
}
.blog-prose .blog-bookmark__url {
  font-size: 0.78rem;
  color: var(--blog-accent);
  word-break: break-all;
}
.blog-prose .blog-bookmark--compact {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 0.85rem;
  padding: 0.65rem 0.9rem;
}
.blog-prose .blog-bookmark--compact .blog-bookmark__desc {
  display: none;
}
.blog-prose .blog-bookmark--large {
  padding: 1.15rem 1.25rem;
}
.blog-prose .blog-bookmark--large .blog-bookmark__title {
  font-size: 1.15rem;
}

/* ── Equation ─────────────────────────────────────────── */

.blog-prose .blog-equation {
  margin: 1.25rem 0;
  padding: 0.85rem 1rem;
  text-align: center;
  overflow-x: auto;
  background: var(--blog-card);
  border: 1px solid var(--blog-rule-light);
  border-radius: 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 1rem;
}
.blog-prose .blog-equation code {
  background: none;
  border: none;
  padding: 0;
  font-size: inherit;
}
.blog-prose .blog-equation--inline {
  display: inline-block;
  margin: 0 0.25rem;
  padding: 0.15rem 0.45rem;
  vertical-align: middle;
}

/* ── Raw HTML wrapper ─────────────────────────────────── */

.blog-prose .blog-html {
  margin: 1.25rem 0;
}
.blog-prose .blog-html--full {
  width: 100%;
}

/* ── File ─────────────────────────────────────────────── */

.blog-prose .blog-file {
  margin: 1.15rem 0;
  font-family: var(--blog-sans);
}
.blog-prose .blog-file--inline a {
  font-weight: 550;
}
.blog-prose .blog-file--card a {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--blog-rule-light);
  border-radius: 12px;
  background: var(--blog-card);
  text-decoration: none !important;
  color: inherit;
  transition: border-color 0.15s ease;
}
.blog-prose .blog-file--card a:hover {
  border-color: color-mix(in srgb, var(--blog-accent) 40%, var(--blog-rule-light));
}
.blog-prose .blog-file--card strong {
  color: var(--blog-ink);
  font-size: 0.98rem;
}
.blog-prose .blog-file--card span {
  font-size: 0.82rem;
  color: var(--blog-muted);
}

/* ── Audio ────────────────────────────────────────────── */

.blog-prose .blog-audio {
  margin: 1.5rem 0;
}
.blog-prose .blog-audio audio {
  width: 100%;
  display: block;
}
.blog-prose .blog-audio figcaption {
  font-family: var(--blog-sans);
  font-size: 0.8rem;
  color: var(--blog-muted);
  margin-top: 0.45rem;
  text-align: center;
}
.blog-prose .blog-audio--minimal audio {
  height: 36px;
}

/* ── Timeline ─────────────────────────────────────────── */

.blog-prose .blog-timeline {
  list-style: none;
  margin: 1.5rem 0;
  padding: 0 0 0 0.25rem;
  border-left: 2px solid var(--blog-rule-light);
  font-family: var(--blog-sans);
}
.blog-prose .blog-timeline__item {
  position: relative;
  padding: 0 0 1.25rem 1.35rem;
  margin: 0;
}
.blog-prose .blog-timeline__item:last-child {
  padding-bottom: 0;
}
.blog-prose .blog-timeline__marker {
  position: absolute;
  left: -0.45rem;
  top: 0.2rem;
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 50%;
  background: var(--blog-accent);
  border: 2px solid var(--blog-paper);
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0;
}
.blog-prose .blog-timeline--numbered .blog-timeline__marker {
  left: -0.7rem;
  top: 0;
  width: 1.25rem;
  height: 1.25rem;
  font-size: 0.65rem;
  font-weight: 700;
  color: #fff;
  background: var(--blog-accent);
}
.blog-prose .blog-timeline__item strong {
  display: block;
  color: var(--blog-ink);
  font-size: 0.98rem;
  margin-bottom: 0.15rem;
}
.blog-prose .blog-timeline__item time {
  display: block;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--blog-muted);
  margin-bottom: 0.25rem;
}
.blog-prose .blog-timeline__item p {
  margin: 0.2rem 0 0;
  font-size: 0.92rem;
  color: var(--blog-muted);
  line-height: 1.5;
}
.blog-prose .blog-timeline--compact .blog-timeline__item {
  padding-bottom: 0.7rem;
}

/* ── Stats ────────────────────────────────────────────── */

.blog-prose .blog-stats {
  display: grid;
  gap: 1rem;
  margin: 1.5rem 0;
  font-family: var(--blog-sans);
}
.blog-prose .blog-stats--2 {
  grid-template-columns: repeat(2, 1fr);
}
.blog-prose .blog-stats--3 {
  grid-template-columns: repeat(3, 1fr);
}
.blog-prose .blog-stats--4 {
  grid-template-columns: repeat(4, 1fr);
}
.blog-prose .blog-stats--stacked {
  grid-template-columns: 1fr;
}
.blog-prose .blog-stat {
  text-align: center;
  padding: 1rem 0.75rem;
  border: 1px solid var(--blog-rule-light);
  border-radius: 12px;
  background: var(--blog-card);
}
.blog-prose .blog-stat__value {
  font-family: var(--blog-display);
  font-size: 1.65rem;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--blog-ink);
}
.blog-prose .blog-stat__label {
  margin-top: 0.3rem;
  font-size: 0.8rem;
  color: var(--blog-muted);
  letter-spacing: 0.02em;
}

@media (max-width: 560px) {
  .blog-prose .blog-stats--3,
  .blog-prose .blog-stats--4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ── Table of contents ────────────────────────────────── */

.blog-prose .blog-toc {
  margin: 1.5rem 0;
  padding: 1rem 1.15rem;
  border: 1px solid var(--blog-rule-light);
  border-radius: 12px;
  background: var(--blog-card);
  font-family: var(--blog-sans);
  font-size: 0.95rem;
}
.blog-prose .blog-toc ol,
.blog-prose .blog-toc ul {
  margin: 0;
  padding-left: 1.2rem;
}
.blog-prose .blog-toc li {
  margin: 0.35rem 0;
}
.blog-prose .blog-toc--compact {
  padding: 0.7rem 0.9rem;
  font-size: 0.88rem;
}
.blog-prose .blog-toc__empty {
  margin: 0;
  color: var(--blog-muted);
  font-size: 0.9rem;
}

/* ── Spacer ───────────────────────────────────────────── */

.blog-prose .blog-spacer {
  display: block;
  width: 100%;
  pointer-events: none;
}

.blog-tag {
  text-decoration: none;
}
.blog-tag:hover {
  color: var(--blog-ink);
  border-color: var(--blog-ink);
}

.blog-article__kicker a {
  color: inherit;
  text-decoration: none;
}
.blog-article__kicker a:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Layout editor click-to-edit chrome */
[data-edit-mode="true"] [data-makr-edit] {
  cursor: pointer;
  outline: 1px dashed transparent;
  outline-offset: 4px;
  transition: outline-color 0.12s ease, background-color 0.12s ease;
  border-radius: 2px;
}
[data-edit-mode="true"] [data-makr-edit]:hover {
  outline-color: var(--blog-accent);
  background-color: color-mix(in srgb, var(--blog-accent) 6%, transparent);
}
[data-edit-mode="true"] [data-makr-edit]:focus-visible {
  outline: 2px solid var(--blog-accent);
}

@media (max-width: 560px) {
  .blog-neighbors {
    grid-template-columns: 1fr;
  }
  .blog-neighbors__next {
    text-align: left;
    justify-self: start;
  }
}

