/* /blog pages (backend/blog.py) — built on styles.css tokens */
.blog-h1{max-width:22ch}
.blog-date{margin-top:14px;color:var(--ink-soft);font-size:.92rem;letter-spacing:.04em}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:clamp(14px,2vw,22px)}
.blog-card{display:flex;flex-direction:column;gap:10px;padding:clamp(20px,2.4vw,28px);border-radius:20px;color:inherit;text-decoration:none;transition:transform .25s,border-color .25s}
.blog-card:hover{transform:translateY(-3px);border-color:rgba(55,226,255,.35)}
.blog-card h2{font-size:clamp(1.25rem,2vw,1.5rem);line-height:1.15;margin:0}
.blog-card p{color:var(--ink-soft);margin:0;line-height:1.6}
.blog-more{margin-top:auto;color:var(--cyan);font-weight:700;font-size:.92rem}
.blog-prose{max-width:720px;font-size:1.06rem;line-height:1.75}
.blog-prose>*+*{margin-top:1em}
.blog-prose h2{font-size:clamp(1.5rem,2.8vw,2rem);line-height:1.15;margin-top:1.6em}
.blog-prose h3{font-size:clamp(1.2rem,2vw,1.4rem);line-height:1.2;margin-top:1.3em}
.blog-prose p,.blog-prose li{color:var(--ink-soft)}
.blog-prose strong{color:var(--ink,#e8f4f8)}
.blog-prose ul,.blog-prose ol{padding-left:1.3em;display:grid;gap:.45em}
.blog-prose a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
.blog-prose blockquote{border-left:2px solid var(--cyan);padding:.4em 0 .4em 1.1em;color:var(--ink-soft)}
.blog-prose table{width:100%;border-collapse:collapse;font-size:.95rem}
.blog-prose th,.blog-prose td{text-align:left;padding:.55em .7em;border-bottom:1px solid rgba(255,255,255,.1);color:var(--ink-soft)}
.blog-prose th{color:var(--ink,#e8f4f8)}
