@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root{
  --bg:#ffffff; --bg-soft:#f2f6fc; --bg-elevated:#e7f0fb;
  --text:#0b1220; --text-muted:#4b5a75;
  --primary:#1447e6; --primary-strong:#0d2f9e; --primary-soft:#e4ecfd;
  --accent:#00a9c4; --border:#dbe6f5; --grid-line:rgba(20,71,230,0.07);
  --radius-sm:2px;
  --font-display:'Space Grotesk', sans-serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'JetBrains Mono', monospace;
}
*,*::before,*::after{ box-sizing:border-box; }
body{ margin:0; background:var(--bg); color:var(--text); font-family:var(--font-body); line-height:1.65; }
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ margin:0 0 .5rem; font-family:var(--font-display); font-weight:600; letter-spacing:-0.02em; }
p{ margin:0 0 1rem; color:var(--text); }
.container{ max-width:920px; margin:0 auto; padding:0 1.5rem; }
.muted, .blog-card-body p{ color:var(--text-muted); }

.grid-bg{ position:fixed; inset:0; z-index:-1; pointer-events:none;
  background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:56px 56px; }

header.nav{ position:sticky; top:0; z-index:10; background:rgba(255,255,255,0.9); backdrop-filter:blur(10px); border-bottom:1px solid var(--border); }
.nav-inner{ display:flex; align-items:center; justify-content:space-between; padding:1rem 1.5rem; max-width:920px; margin:0 auto; }
.brand{ display:flex; align-items:center; gap:.6rem; font-family:var(--font-display); font-weight:700; font-size:1.05rem; }
.brand-mark{ width:32px; height:32px; border-radius:var(--radius-sm); background:var(--primary); display:flex; align-items:center; justify-content:center; }
.brand-mark svg{ width:18px; height:18px; }

.btn{ display:inline-flex; align-items:center; gap:.4rem; font-weight:600; padding:.7rem 1.2rem; border-radius:var(--radius-sm); border:1px solid transparent; }
.btn-primary{ background:var(--primary); color:#fff; }
.btn-sm{ padding:.5rem 1rem; font-size:.85rem; }

.page-head{ max-width:680px; margin:3.5rem auto 2.5rem; text-align:left; }
.eyebrow{ font-family:var(--font-mono); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--primary); margin-bottom:.5rem; }
.page-head h1{ font-size:clamp(1.8rem,3vw + 1rem,2.6rem); line-height:1.1; }
.page-head p{ color:var(--text-muted); margin-top:.75rem; }

.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-bottom:4rem; }
@media (max-width:800px){ .blog-grid{ grid-template-columns:1fr; } }
.blog-card{ background:var(--bg); border:1px solid var(--border); display:flex; flex-direction:column; transition:border-color .2s, transform .2s; }
.blog-card:hover{ border-color:var(--primary); transform:translateY(-3px); }
.blog-thumb{ height:130px; background:var(--bg-elevated); overflow:hidden; }
.blog-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.blog-card:hover .blog-thumb img{ transform:scale(1.05); }
.blog-card-body{ padding:1.25rem; display:flex; flex-direction:column; gap:.4rem; flex:1; }
.blog-tag{ font-family:var(--font-mono); font-size:.66rem; color:var(--accent); text-transform:uppercase; letter-spacing:.08em; }
.blog-card-body h2{ font-size:1.02rem; }
.blog-card-body p{ font-size:.86rem; flex:1; }
.blog-read{ font-size:.82rem; font-weight:600; color:var(--primary); }

/* Article page */
article.post{ max-width:720px; margin:3rem auto 4rem; }
.post-hero{ width:100%; aspect-ratio:16/8; object-fit:cover; border:1px solid var(--border); margin-bottom:1.75rem; }
.post-tag{ font-family:var(--font-mono); font-size:.72rem; color:var(--accent); text-transform:uppercase; letter-spacing:.08em; margin-bottom:.6rem; display:block; }
.post h1{ font-size:clamp(1.7rem,2.6vw + 1rem,2.3rem); line-height:1.15; }
.post-meta{ color:var(--text-muted); font-size:.85rem; margin:.6rem 0 2rem; font-family:var(--font-mono); }
.post h2{ font-size:1.3rem; margin-top:2rem; }
.post h3{ font-size:1.05rem; margin-top:1.4rem; }
.post ul, .post ol{ margin:0 0 1rem; padding-left:1.3rem; color:var(--text); }
.post li{ margin-bottom:.4rem; }
.callout{ background:var(--bg-soft); border-left:3px solid var(--primary); padding:1rem 1.2rem; margin:1.5rem 0; font-size:.92rem; }
.post-cta{ background:var(--primary); color:#fff; padding:2rem; text-align:center; margin-top:2.5rem; }
.post-cta h3{ color:#fff; margin-bottom:.5rem; }
.post-cta p{ color:rgba(255,255,255,.85); margin-bottom:1rem; }
.post-cta .btn{ background:#fff; color:var(--primary-strong); }
.back-link{ display:inline-flex; align-items:center; gap:.3rem; font-size:.85rem; font-weight:600; color:var(--primary); margin-bottom:1.5rem; }

footer{ border-top:1px solid var(--border); background:var(--bg-soft); padding:2rem 0; }
.footer-bottom{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem; font-size:.85rem; color:var(--text-muted); }
