/* InsightViz site — page styles lifted from the shared xtract templates (blog, post, about, contact) so pages stay slim */

/* ---- from blog.html ---- */
.blog-list-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:8px; }
        .blog-section__title { font-size:24px; font-weight:800; letter-spacing:-.015em; margin:58px 0 4px; color:#0b1020; }
        .blog-section__title:first-of-type { margin-top:22px; }
        .blog-section__desc { font-size:14px; line-height:1.55; color:#5b6472; margin:0 0 24px; padding-bottom:16px; border-bottom:1px solid rgba(2,6,23,.09); max-width:760px; }
        .blog-section__title { scroll-margin-top:172px; }
        .blog-jump { position:sticky; top:72px; z-index:20; display:flex; flex-wrap:wrap; gap:8px; padding:12px 2px; margin:0 0 6px; background:rgba(255,255,255,.9); backdrop-filter:saturate(150%) blur(10px); -webkit-backdrop-filter:saturate(150%) blur(10px); border-bottom:1px solid rgba(2,6,23,.08); }
        .blog-jump a { cursor:pointer; font-size:13px; font-weight:600; color:#3a4256; text-decoration:none; padding:7px 15px; border-radius:999px; border:1px solid rgba(2,6,23,.10); background:#fff; transition:all .15s ease; white-space:nowrap; }
        .blog-jump a:hover { border-color:#6d5efc; color:#4f46e5; }
        .blog-jump a.is-active { background:linear-gradient(90deg,#7c5cff,#22b8cf); color:#fff; border-color:transparent; box-shadow:0 2px 10px rgba(124,92,255,.25); }
        @media (max-width:640px){ .blog-jump{ overflow-x:auto; flex-wrap:nowrap; } }
        .post-card { background:#fff; border:1px solid #e6e8f5; border-radius:16px; overflow:hidden;
            display:flex; flex-direction:column; text-decoration:none; transition:transform .18s ease, box-shadow .18s ease;
            box-shadow:0 10px 30px -22px rgba(30,27,75,0.5); }
        .post-card:hover { transform:translateY(-4px); box-shadow:0 22px 50px -24px rgba(30,27,75,0.55); }
        .post-card__img { aspect-ratio:16/9; overflow:hidden; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#3762ea,#7b3fe4); border-bottom:1px solid #eef0fa; }
        .post-card__img i { font-size:46px; color:rgba(255,255,255,.92); }
        .post-card:nth-of-type(3n) .post-card__img { background:linear-gradient(135deg,#4a3bd1,#06b6d4); }
        .post-card:nth-of-type(3n+1) .post-card__img { background:linear-gradient(135deg,#6d5cf0,#a78bfa); }
        .post-card__img img { width:100%; height:100%; object-fit:cover; object-position:top left; display:block; }
        .post-card__body { padding:20px 22px 24px; display:flex; flex-direction:column; flex:1; }
        .post-card__tag { align-self:flex-start; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
            padding:4px 10px; border-radius:20px; background:rgba(124,108,240,.12); color:#5b4bd6; margin-bottom:12px; }
        .post-card__title { font-size:19px; line-height:1.35; color:#1e1b4b; margin:0 0 10px; font-weight:700; }
        .post-card__excerpt { font-size:14.5px; color:#5b6486; line-height:1.6; margin:0 0 16px; flex:1; }
        .post-card__meta { font-size:12.5px; color:#8a90ac; display:flex; align-items:center; gap:8px; }
        .post-card__more { margin-top:14px; font-size:14px; font-weight:600; color:#5b4bd6; }
        .post-card__more i { transition:transform .18s ease; }
        .post-card:hover .post-card__more i { transform:translateX(4px); }
        @media (max-width: 991px){ .blog-list-grid{ grid-template-columns:repeat(2,1fr);} }
        @media (max-width: 640px){ .blog-list-grid{ grid-template-columns:1fr;} }

/* ---- from blog-clickable-citations.html ---- */
.blog-hero .ai-hero__eyebrow { margin-bottom: 18px; }
        .blog-meta { color:#6b7396; font-size:14px; margin-top:14px; }
        .blog-meta strong { color:#3b3f5c; }
        .article-body { max-width: 880px; margin: 0 auto; }
        .article-body h2 { font-size: 27px; margin: 38px 0 6px; color:#1e1b4b; }
        .article-body h3 { font-size:19px; margin: 30px 0 8px; color:#2b2a4a; }
        .article-body p { color:#4a4f6b; font-size:16.5px; line-height:1.75; margin-bottom:16px; }
        .article-body ul,.article-body ol { color:#4a4f6b; font-size:16.5px; line-height:1.7; margin:0 0 18px 20px; }
        .article-body li { margin-bottom:8px; }
        .lead-para { font-size:19px !important; color:#2b2a4a !important; line-height:1.7 !important; }
        .cat-note { color:#6b7396; font-size:14.5px; margin:2px 0 12px !important; }
        .callout { background:#f8f9ff; border:1px solid #e6e8f5; border-left:4px solid #7c6cf0; border-radius:12px; padding:20px 22px; margin:24px 0; }
        .callout h4 { margin:0 0 8px; font-size:16px; color:#1e1b4b; }
        .callout p { margin:0; font-size:15px; color:#4a4f6b; }
        .callout.next { border-left-color:#22c1a4; }
        .ec-table { width:100%; border-collapse:collapse; margin:14px 0 4px; font-size:14.5px; }
        .ec-table th,.ec-table td { text-align:left; padding:11px 14px; border-bottom:1px solid #e6e8f5; color:#4a4f6b; vertical-align:top; }
        .ec-table th { background:#f4f6ff; color:#1e1b4b; font-weight:700; font-size:12.5px; text-transform:uppercase; letter-spacing:.04em; }
        .ec-table td.p { color:#1e1b4b; font-weight:600; }
        .ec-table code { background:#eef1fb; color:#3f3d7a; padding:1px 6px; border-radius:5px; font-size:12.5px; }
        /* step cards */
        .steps4 { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:20px 0 6px; }
        @media(max-width:720px){ .steps4{ grid-template-columns:1fr 1fr; } }
        .st { border:1px solid #e6e8f5; border-radius:13px; padding:15px 14px; background:#fff; }
        .st .ic { width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:14px; margin-bottom:9px; }
        .st b { display:block; color:#1e1b4b; font-size:14px; margin-bottom:4px; }
        .st span { font-size:12.5px; color:#6b7396; line-height:1.45; }
        .st code { background:#eef1fb; color:#3f3d7a; padding:0 4px; border-radius:4px; font-size:11.5px; }
        .xform { font-family:ui-monospace,Menlo,monospace; font-size:13px; }
        .xform .a { color:#c0334d; } .xform .b { color:#0b7d6f; font-weight:700; } .xform .arr { color:#8a90ad; padding:0 6px; }
        .json-box { background:#1a1d33; color:#dfe3f5; border-radius:12px; padding:20px 22px; font-family:ui-monospace,Menlo,monospace; font-size:12.5px; line-height:1.62; overflow-x:auto; margin:18px 0; }
        .json-box .k { color:#8fb4ff; } .json-box .s { color:#a5e6b0; } .json-box .n { color:#f5c06b; } .json-box .c { color:#7f88a8; }
        figure.shot { margin: 26px 0 30px; }
        figure.shot img { width:100%; border-radius:14px; border:1px solid #e6e8f5; box-shadow: 0 18px 50px -20px rgba(30,27,75,0.35); display:block; }
        figure.shot figcaption { text-align:center; color:#7a819f; font-size:13.5px; margin-top:12px; font-style:italic; }
        .article-body .mermaid { text-align:center; margin:26px 0 30px; }
        mark { background:rgba(188,124,31,.20); color:inherit; border-radius:3px; padding:0 3px; }
/* InsightViz: code samples keep their line breaks */
.article-body .json-box{ white-space:pre-wrap; }
