.blog-prose{max-width:none;color:#27272a;font-size:1rem;line-height:1.8}.blog-prose h1{font-size:2rem;line-height:1.2;margin:1.25rem 0 .5rem}.blog-prose h2{font-size:1.5rem;line-height:1.3;margin:2.25rem 0 .75rem}.blog-prose h3{font-size:1.25rem;line-height:1.35;margin:1.75rem 0 .5rem}.blog-prose h2,.blog-prose h3{scroll-margin-top:6rem}.blog-prose p{margin:.9rem 0}.blog-prose ul,.blog-prose ol{padding-left:1.25rem;margin:.75rem 0}.blog-prose li{margin:.375rem 0}.blog-prose a{color:#047857;text-decoration:none;text-underline-offset:4px}.blog-prose a:hover{color:#065f46;text-decoration:underline}.blog-prose img,.blog-prose video{border-radius:.75rem}.blog-prose hr{border-color:#e4e4e7;margin:1.75rem 0}.blog-prose :not(pre)>code{background:#f4f4f5;padding:.125rem .375rem;border-radius:.5rem;font-weight:600}.blog-prose pre{background:#18181b;color:#fff;border-radius:.875rem;padding:1rem 1.25rem;overflow-x:auto;margin:1.25rem 0}.blog-prose table{width:100%;border-collapse:collapse;font-size:.95rem;margin:1rem 0}.blog-prose thead th{background:#fafafa;text-align:left}.blog-prose th,.blog-prose td{border:1px solid rgb(228 228 231);padding:.625rem .75rem}.blog-prose figure{margin:1.25rem 0}.blog-prose figcaption{text-align:center;color:#71717a;font-size:.9rem;margin-top:.5rem}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.blog-prose .callout{--c-bg: #ecfdf5;--c-bd: #10b981;--c-tx: #065f46;--c-ic: #10b981;display:grid;grid-template-columns:40px 1fr;gap:.75rem;align-items:start;background:var(--c-bg);border:1.5px solid color-mix(in oklab,var(--c-bd) 35%,white);border-left:6px solid var(--c-bd);color:#1f2937;padding:.9rem 1rem;border-radius:14px;box-shadow:0 1px #10b9810f;margin:1.25rem 0}.blog-prose .callout>*{margin:0}.blog-prose .callout:before{content:"";width:28px;height:28px;margin-top:.15rem;border-radius:999px;background:radial-gradient(circle at 50% 50%,white 45%,transparent 46%),var(--c-ic);box-shadow:0 0 0 4px color-mix(in oklab,var(--c-ic) 18%,transparent)}.blog-prose .callout strong{color:var(--c-tx)}.blog-prose .callout.is-info{--c-bg: #eff6ff;--c-bd: #3b82f6;--c-tx: #1e40af;--c-ic: #3b82f6}.blog-prose .callout.is-warn{--c-bg: #fffbeb;--c-bd: #f59e0b;--c-tx: #92400e;--c-ic: #f59e0b}.blog-prose .callout.is-danger{--c-bg: #fef2f2;--c-bd: #ef4444;--c-tx: #991b1b;--c-ic: #ef4444}.blog-prose .callout.is-compact{padding:.65rem .8rem;border-radius:10px;grid-template-columns:34px 1fr}.blog-prose .callout.is-compact:before{width:24px;height:24px}.blog-prose--mag h2{font-size:1.75rem;margin:2.5rem 0 1rem;border-left:6px solid #10b981;padding-left:.75rem;font-weight:700;color:#111827}.blog-prose--mag h3{font-size:1.35rem;margin:1.75rem 0 .75rem;font-weight:600;letter-spacing:.2px;text-transform:uppercase;color:#065f46}.blog-prose--mag a{color:#065f46}.blog-prose--mag a:hover{text-decoration:underline}.blog-prose--mag blockquote{border-left:0;background:#f0fdf4;border-left:4px solid #10b981;font-size:1.05rem}.blog-prose--dark{background:#111827;color:#e5e7eb;padding:2rem;border-radius:1rem}.blog-prose--dark h1,.blog-prose--dark h2,.blog-prose--dark h3{color:#f9fafb}.blog-prose--dark a{color:#34d399}.blog-prose--dark a:hover{color:#6ee7b7}.blog-prose--dark hr{border-color:#374151}.blog-prose--dark blockquote{background:#1f2937;border-left:4px solid #34d399;color:#d1fae5}.blog-prose--dark pre{background:#1e293b}.blog-prose--dark thead th{background:#0b1220}.blog-prose--dark th,.blog-prose--dark td{border-color:#374151}.blog-prose--dark :not(pre)>code{background:#1f2937;color:#e5e7eb}.blog-prose--editorial{font-family:Georgia,Times New Roman,serif;font-size:1.06rem;line-height:1.95;color:#1f2937}.blog-prose--editorial h1,.blog-prose--editorial h2,.blog-prose--editorial h3{font-family:Merriweather,serif}.blog-prose--editorial h2{font-size:1.8rem;border-bottom:2px solid #e5e7eb;padding-bottom:.35rem}.blog-prose--editorial blockquote{font-style:italic;border-left:4px solid #9ca3af;background:#f9fafb;padding:.75rem 1rem;color:#374151}.blog-prose--editorial figcaption{font-style:italic}.blog-prose--card{background:#fff;border:1px solid rgb(229 231 235);border-radius:16px;padding:1.25rem;box-shadow:0 6px 20px #0000000f,0 1px 2px #0000000a}@media (min-width: 768px){.blog-prose--card{padding:2rem 2.25rem}}.blog-prose--card h1,.blog-prose--card h2,.blog-prose--card h3{color:#0f172a}.blog-prose--card hr{border-color:#e4e4e7}.blog-prose--card blockquote{background:#f8fafc;border-left:4px solid #10b981}.post-grid{display:grid;gap:1.25rem}@media (min-width: 1024px){.post-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:1.5rem}}.toc-card{background:#fff;border:1px solid rgb(229 231 235);border-radius:16px;padding:1rem;box-shadow:0 6px 20px #0000000f,0 1px 2px #0000000a;display:none}@media (min-width: 1024px){.toc-card{display:block}}.toc{position:sticky;top:96px}.toc-title{display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem;color:#111827}.toc-list{list-style:none;padding:0;margin:0}.toc-list li{margin:.15rem 0}.toc-list li[data-depth="3"]{padding-left:.75rem}.toc-list li[data-depth="4"]{padding-left:1.5rem}.toc a{display:block;padding:.35rem .4rem;border-radius:.5rem;text-decoration:none;color:#374151}.toc a:hover{color:#065f46;background:#f0fdf4}.toc a[aria-current=true]{color:#065f46;background:#ecfdf5;font-weight:600}.blog-prose :where(img,video,figure){display:block;width:100%;max-width:100%;margin:1rem auto;border-radius:.75rem}@media (min-width: 768px){.blog-prose :where(img,video,figure){max-width:640px}}@media (min-width: 1280px){.blog-prose :where(img,video,figure){max-width:700px}}.blog-prose img{height:auto;object-fit:contain}.blog-prose figure>img{margin:0}.blog-prose figcaption{font-size:.9rem;color:#71717a;margin-top:.4rem;text-align:center;line-height:1.4}.blog-prose img.is-sm,.blog-prose figure.is-sm{max-width:520px}.blog-prose .is-wide{max-width:820px}.reveal{opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease;transition-delay:var(--delay, 0ms)}.reveal.is-inview{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion: reduce){#read-progress{display:none}.reveal{opacity:1;transform:none;transition:none}}
