/* Repvox blog (bl- prefix). Uses site.css tokens, so light + dark follow html[data-theme]. Transform/opacity-only motion. */
.blog-page{background:var(--bg,#fff);color:var(--text,#22303F)}
.bl-main{min-height:60vh;padding-bottom:48px}
.bl-wrap{width:100%;max-width:var(--max,1220px);margin:0 auto;padding:0 16px}
.bl-narrow{max-width:calc(70ch + 32px)}
.bl-crumbs{font-size:.88rem;color:var(--muted);margin:0 0 14px}
.bl-crumbs a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.bl-crumbs span{margin:0 .3rem}
.bl-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border-radius:999px;background:var(--btn,#C94716);color:#fff;font:600 1rem var(--head-f,system-ui,sans-serif);text-decoration:none;border:2px solid transparent;transition:transform .25s,background-color .2s}
.bl-btn:hover{background:var(--btn-h,#B23D10);transform:translateY(-2px);text-decoration:none}
.bl-btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.bl-btn-ghost:hover{background:rgba(255,255,255,.14)}
/* hero (index + category) */
.bl-hero{background:var(--bg-alt,#F3F6F9);border-bottom:1px solid var(--border);padding:28px 0 26px;margin-bottom:28px}
.bl-hero h1{font-size:clamp(1.9rem,6vw,3rem);margin:.2em 0 .3em}
.bl-hero p{max-width:62ch;margin:0 0 .6em;color:var(--muted)}
.bl-cats{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.bl-cats a{display:inline-flex;align-items:center;min-height:40px;padding:6px 16px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--head);font-weight:600;font-size:.92rem;text-decoration:none;transition:background-color .2s,color .2s}
.bl-cats a:hover,.bl-cats a[aria-current]{background:var(--btn,#C94716);border-color:var(--btn,#C94716);color:#fff}
/* card grid */
.bl-grid{display:grid;grid-template-columns:1fr;gap:20px;margin-bottom:28px}
@media(min-width:640px){.bl-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.bl-grid{grid-template-columns:repeat(3,1fr);gap:24px}}
.bl-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s}
.bl-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.bl-card-img{display:block;background:var(--surface-2)}
.bl-card-img img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block}
.bl-card-body{padding:16px 18px 20px;display:flex;flex-direction:column;flex:1}
.bl-card h2{font-size:1.2rem;line-height:1.25;margin:.3em 0 .45em}
.bl-card h2 a{color:var(--head);text-decoration:none}.bl-card h2 a:hover{color:var(--link)}
.bl-card p{margin:0 0 .6em;color:var(--muted);font-size:.95rem}
.bl-card .bl-meta{margin-top:auto;padding-top:6px}
.bl-cat{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-text);font-weight:700;text-decoration:none}
.bl-meta{color:var(--muted);font-size:.88rem;margin:0}
.bl-pager{display:flex;justify-content:center;gap:20px;align-items:center;margin:8px 0 32px;flex-wrap:wrap}
.bl-pager a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;font-weight:600}
.bl-empty{text-align:center;color:var(--muted);padding:48px 0}
/* post */
.bl-article-head{padding-top:24px}
.bl-article-head h1{font-size:clamp(1.85rem,5.4vw,2.9rem);line-height:1.12;margin:.15em 0 .4em}
.bl-byline{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;color:var(--muted);font-size:.92rem;margin:0}
.bl-byline strong{color:var(--head);font-weight:600}
.bl-feature{margin:20px auto 24px;max-width:960px;padding:0 16px}
.bl-feature img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:16px;display:block;background:var(--surface-2)}
.bl-note{font-size:.88rem;color:var(--muted);border-left:3px solid var(--border);padding:2px 0 2px 12px;margin:0 0 20px}
.bl-toc{border:1px solid var(--border);background:var(--bg-alt);border-radius:14px;margin:0 0 24px;padding:0}
.bl-toc:has([data-toc][hidden]){display:none}
.bl-toc summary{cursor:pointer;list-style:none;padding:14px 18px;min-height:48px;font:600 1rem var(--head-f);color:var(--head);display:flex;align-items:center;justify-content:space-between}
.bl-toc summary::-webkit-details-marker{display:none}
.bl-toc summary::after{content:"+";font-size:1.3rem;line-height:1}
.bl-toc[open] summary::after{content:"\2212"}
.bl-toc ol{margin:0;padding:0 18px 16px 38px}
.bl-toc li{margin:6px 0;line-height:1.35}
.bl-toc a{color:var(--link)}
.bl-content{font-size:1.0625rem;line-height:1.65;max-width:70ch;margin-left:auto;margin-right:auto}
@media(min-width:760px){.bl-content{font-size:1.125rem}}
.bl-content h2{font-size:clamp(1.45rem,4vw,1.9rem);margin:2em 0 .6em;scroll-margin-top:90px}
.bl-content h3{font-size:1.2rem;margin:1.6em 0 .5em}
.bl-content p,.bl-content ul,.bl-content ol{margin:0 0 1.1em}
.bl-content li{margin:.3em 0}
.bl-content a{color:var(--link);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.bl-content img{max-width:100%;height:auto;border-radius:10px}
.bl-content figure{margin:1.6em 0}.bl-content figcaption{font-size:.88rem;color:var(--muted);text-align:center}
.bl-content blockquote{margin:1.5em 0;padding:.6em 1.1em;border-left:4px solid var(--orange);background:var(--bg-alt);border-radius:0 10px 10px 0}
.bl-content pre{background:var(--deep);color:#E6EDF3;padding:1em;border-radius:10px;overflow:auto;font-size:.9rem}
.bl-content table{width:100%;border-collapse:collapse;margin:1.4em 0;display:block;overflow-x:auto;font-size:.95rem}
.bl-content th,.bl-content td{border:1px solid var(--border);padding:8px 10px;text-align:left;vertical-align:top}
.bl-content th{background:var(--bg-alt);color:var(--head)}
.bl-content .bl-bench{font-size:.92rem;color:var(--muted)}
.bl-tags{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 8px}
.bl-tags span{background:var(--bg-alt);border:1px solid var(--border);padding:3px 12px;border-radius:999px;font-size:.85rem;color:var(--muted)}
.bl-share{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:20px 0}
.bl-share b{font:600 .95rem var(--head-f);color:var(--head);margin-right:4px}
.bl-share a,.bl-share button{display:inline-flex;align-items:center;min-height:40px;padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--head);font:600 .9rem var(--body-f);text-decoration:none;cursor:pointer}
.bl-share a:hover,.bl-share button:hover{border-color:var(--btn,#C94716);color:var(--link)}
.bl-cta-box{background:linear-gradient(135deg,var(--deep-2,#0D2438),var(--navy-3,#1B4A73));color:var(--on-deep,#D6E2EE);padding:24px 20px;border-radius:18px;margin:32px 0}
.bl-cta-box h2{color:#fff;margin:0 0 .35em;font-size:clamp(1.35rem,4vw,1.7rem)}
.bl-cta-box p{margin:0 0 1em}
.bl-cta-actions{display:flex;flex-wrap:wrap;gap:10px}
.bl-cta-box small{display:block;margin-top:12px;color:var(--on-deep-mute,#A9BDD1);font-size:.82rem}
.bl-related{margin-top:40px}
.bl-related h2{font-size:clamp(1.4rem,4vw,1.9rem)}
.bl-footer{background:var(--deep);color:var(--on-deep);padding:28px 0;margin-top:40px;font-size:.92rem}.bl-footer a{color:#fff}
/* mobile: leave room for the sticky .mbar */
@media(max-width:899px){.blog-page .bl-main{padding-bottom:84px}}
@media(prefers-reduced-motion:reduce){.bl-card,.bl-btn{transition:none}.bl-card:hover,.bl-btn:hover{transform:none}}
@media(max-width:599px){.bl-byline [aria-hidden]{display:none}.bl-byline{flex-direction:column;gap:2px}}
