.blog-index,.blog-article{--blog-bg:#f7f8fb;--blog-surface:#fff;--blog-border:#e6e9f2;--blog-border-hi:#d3d9e8;--blog-ink:#17223b;--blog-soft:#58637b;--blog-accent:#3b5bdb;--blog-accent-dk:#3050c8;--blog-accent-tint:#edf1fe;--blog-navy:#0f1a33;--blog-navy-2:#16233f;--blog-emerald:#0e8a62;--blog-emerald-t:#e5f4ee;--blog-amber-t:#fcf3e3;--blog-amber:#b7791f;--blog-mono:"IBM Plex Mono", ui-monospace, monospace;--blog-display:"Bricolage Grotesque", system-ui, sans-serif;--blog-body:"Inter", system-ui, sans-serif;--blog-shadow-sm:0 2px 10px -2px #17223b0f;--blog-shadow-md:0 18px 44px -18px #17223b2e;color:var(--blog-ink);font-family:var(--blog-body);font-size:16px;line-height:1.6}.blog-index h1,.blog-index h2,.blog-index h3,.blog-article h1,.blog-article h2,.blog-article h3,.blog-article h4{font-family:var(--blog-display);letter-spacing:-.02em;color:var(--blog-ink);line-height:1.15}.blog-index a,.blog-article a{color:inherit}.blog-index .wrap,.blog-article .wrap{max-width:1120px;margin:0 auto;padding:0 24px}.blog-index .kicker,.blog-article .kicker{font-family:var(--blog-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--blog-accent);background:0 0;border:none;margin:0;padding:0;font-size:.68rem;font-weight:600;display:block}.blog-index .btn,.blog-article .btn{cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.4rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.blog-index .btn-p,.blog-article .btn-p{background:var(--blog-accent);color:#fff}.blog-index .btn-p:hover,.blog-article .btn-p:hover{background:var(--blog-accent-dk)}.blog-index .bhero{padding:64px 0 32px}.blog-index .bhero h1{max-width:700px;margin:12px 0 10px;font-size:clamp(2rem,4.4vw,2.9rem);font-weight:800}.blog-index .bhero p{color:var(--blog-soft);max-width:600px;margin:0;font-size:1.08rem}.blog-index .pills{flex-wrap:wrap;gap:8px;padding:26px 0 10px;display:flex}.blog-index .pill{background:var(--blog-surface);border:1px solid var(--blog-border);color:var(--blog-soft);border-radius:999px;padding:.5rem 1rem;font-size:.82rem;font-weight:600;text-decoration:none;transition:all .15s}.blog-index .pill:hover{border-color:var(--blog-accent);color:var(--blog-accent)}.blog-index .pill.on{background:var(--blog-navy);border-color:var(--blog-navy);color:#fff}.blog-index .featured{background:var(--blog-surface);border:1px solid var(--blog-border);box-shadow:var(--blog-shadow-md);border-radius:22px;grid-template-columns:1.15fr 1fr;gap:0;margin:26px 0 40px;text-decoration:none;transition:transform .15s;display:grid;overflow:hidden}.blog-index .featured:hover{transform:translateY(-2px)}.blog-index .featured .img{aspect-ratio:16/10;background:linear-gradient(135deg, var(--blog-navy), var(--blog-accent));position:relative;overflow:hidden}.blog-index .featured .img img{object-fit:cover;width:100%;height:100%;display:block}.blog-index .featured .txt{flex-direction:column;justify-content:center;padding:36px;display:flex}.blog-index .featured .cl{font-family:var(--blog-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--blog-accent);font-size:.66rem;font-weight:600}.blog-index .featured h2{margin:10px 0;font-size:clamp(1.3rem,2.6vw,1.8rem)}.blog-index .featured p{color:var(--blog-soft);margin:0;font-size:.98rem}.blog-index .featured .meta{color:var(--blog-soft);gap:.9rem;margin-top:16px;font-size:.8rem;display:flex}@media (max-width:860px){.blog-index .featured{grid-template-columns:1fr}}.blog-index .grid{grid-template-columns:repeat(3,1fr);gap:20px;margin:0;padding:0;list-style:none;display:grid}.blog-index .card{background:var(--blog-surface);border:1px solid var(--blog-border);box-shadow:var(--blog-shadow-sm);border-radius:18px;flex-direction:column;height:100%;text-decoration:none;transition:all .15s;display:flex;overflow:hidden}.blog-index .card:hover{border-color:var(--blog-accent);box-shadow:var(--blog-shadow-md);transform:translateY(-3px)}.blog-index .card .thumb{aspect-ratio:16/9;background:linear-gradient(135deg,#e9edfb,#d8e0f8);position:relative;overflow:hidden}.blog-index .card .thumb img{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.blog-index .card:hover .thumb img{transform:scale(1.04)}.blog-index .card .thumb-mark{font-family:var(--blog-display);letter-spacing:-.04em;color:#17223b2e;pointer-events:none;place-items:center;font-size:1.4rem;font-weight:800;display:grid;position:absolute;inset:0}.blog-index .card .body{flex-direction:column;flex:1;padding:20px 22px 22px;display:flex}.blog-index .card .cl{font-family:var(--blog-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--blog-accent);font-size:.64rem;font-weight:600}.blog-index .card h3{margin:8px 0 6px;font-size:1.08rem;line-height:1.35}.blog-index .card p{color:var(--blog-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;margin:0;font-size:.88rem;display:-webkit-box;overflow:hidden}.blog-index .card .meta{color:var(--blog-soft);align-items:center;gap:.8rem;margin-top:14px;font-size:.76rem;display:flex}.blog-index .card .meta .dot{background:var(--blog-border-hi);border-radius:50%;width:3px;height:3px}@media (max-width:960px){.blog-index .grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.blog-index .grid{grid-template-columns:1fr}.blog-index .bhero{padding:40px 0 24px}}.blog-index .pager{justify-content:center;gap:8px;margin:44px 0 10px;display:flex}.blog-index .pager a{font-family:var(--blog-mono);background:var(--blog-surface);border:1px solid var(--blog-border);min-width:40px;height:40px;color:var(--blog-soft);border-radius:10px;place-items:center;font-size:.84rem;font-weight:600;text-decoration:none;display:grid}.blog-index .pager a.on{background:var(--blog-accent);border-color:var(--blog-accent);color:#fff}.blog-index .pager a:hover:not(.on){border-color:var(--blog-accent);color:var(--blog-accent)}.blog-index .band{background:var(--blog-navy);color:#fff;border-radius:24px;flex-wrap:wrap;align-items:center;gap:24px;margin:64px 0 76px;padding:44px 40px;display:flex}.blog-index .band h2{color:#fff;flex:1;min-width:260px;margin:0;font-size:1.4rem}.blog-index .band p{color:#aeb9d4;flex-basis:100%;order:3;max-width:560px;margin:4px 0 0;font-size:.95rem}.blog-index .band .btn{color:var(--blog-navy);background:#fff}@media (min-width:700px){.blog-index .band p{flex:2;order:0}}.blog-index .blog-empty{border:1px dashed var(--blog-border-hi);text-align:center;background:var(--blog-surface);border-radius:18px;margin:26px 0 76px;padding:48px 28px}.blog-index .blog-empty h2{margin:0 0 10px;font-size:1.35rem}.blog-index .blog-empty p{color:var(--blog-soft);margin:0 0 18px}.blog-index .blog-empty .links{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.blog-index .blog-empty a{color:var(--blog-accent);font-weight:600;text-decoration:none}.blog-index .blog-empty a:hover{text-decoration:underline}.blog-article .progress{background:var(--blog-accent);z-index:80;pointer-events:none;width:0;height:3px;transition:width .1s linear;position:fixed;top:0;left:0}.blog-article .crumb{font-family:var(--blog-mono);color:var(--blog-soft);padding:26px 0 0;font-size:.72rem}.blog-article .crumb a{color:var(--blog-soft);text-decoration:none}.blog-article .crumb a:hover{color:var(--blog-accent)}.blog-article .crumb span{color:var(--blog-border-hi);margin:0 .45rem}.blog-article .layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:44px;padding:22px 0 60px;display:grid}@media (max-width:980px){.blog-article .layout{grid-template-columns:1fr}}.blog-article .ahead .cl{font-family:var(--blog-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--blog-accent);font-size:.68rem;font-weight:600}.blog-article .ahead h1{margin:12px 0 14px;font-size:clamp(1.7rem,3.8vw,2.5rem);font-weight:800}.blog-article .ahead .meta{color:var(--blog-soft);flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:24px;font-size:.84rem;display:flex}.blog-article .ahead .meta .avatar{background:var(--blog-navy);color:#fff;width:30px;height:30px;font-family:var(--blog-display);border-radius:50%;place-items:center;font-size:.7rem;font-weight:800;display:grid}.blog-article .ahead .hero-img{border:1px solid var(--blog-border);box-shadow:var(--blog-shadow-sm);aspect-ratio:16/8;background:linear-gradient(135deg,#e9edfb,#d8e0f8);border-radius:18px;margin-bottom:8px;position:relative;overflow:hidden}.blog-article .ahead .hero-img img{object-fit:cover;width:100%;height:100%;display:block}.blog-article .ahead figcaption{color:var(--blog-soft);margin:8px 0 0 4px;font-size:.76rem}.blog-article .prose{max-width:720px;margin-top:26px;font-size:1.02rem;line-height:1.65}.blog-article .prose h2{margin:2.2em 0 .7em;scroll-margin-top:90px;font-size:1.45rem}.blog-article .prose h3{margin:1.8em 0 .6em;scroll-margin-top:90px;font-size:1.15rem}.blog-article .prose h4{margin:1.4em 0 .5em;font-size:1.05rem}.blog-article .prose p{color:#2a3550;margin-bottom:1.1em}.blog-article .prose ul,.blog-article .prose ol{color:#2a3550;margin:0 0 1.2em 1.4em}.blog-article .prose li{margin-bottom:.45em}.blog-article .prose a{color:var(--blog-accent);text-underline-offset:3px;font-weight:500;-webkit-text-decoration:underline #3b5bdb59;text-decoration:underline #3b5bdb59}.blog-article .prose a:hover{-webkit-text-decoration-color:var(--blog-accent);text-decoration-color:var(--blog-accent)}.blog-article .prose strong{color:var(--blog-ink)}.blog-article .prose blockquote{border-left:3px solid var(--blog-accent);background:var(--blog-surface);color:var(--blog-soft);border-radius:0 12px 12px 0;margin:1.4em 0;padding:14px 20px;font-size:.98rem}.blog-article .prose table{border-collapse:collapse;background:var(--blog-surface);width:100%;box-shadow:var(--blog-shadow-sm);border-radius:12px;margin:1.4em 0;font-size:.92rem;overflow:hidden}.blog-article .prose th{font-family:var(--blog-mono);text-transform:uppercase;letter-spacing:.06em;text-align:left;background:var(--blog-bg);color:var(--blog-soft);border-bottom:1px solid var(--blog-border);padding:10px 14px;font-size:.68rem}.blog-article .prose td{border-bottom:1px solid var(--blog-border);padding:11px 14px}.blog-article .prose tr:last-child td{border-bottom:none}.blog-article .prose figure{margin:1.6em 0}.blog-article .prose figure img,.blog-article .prose img{border:1px solid var(--blog-border);border-radius:14px;width:100%;max-width:100%;height:auto}.blog-article .prose figcaption{color:var(--blog-soft);margin-top:6px;font-size:.78rem}.blog-article .prose .note{background:var(--blog-accent-tint);color:#2a3550;border:1px solid #d8e0f8;border-radius:14px;margin:1.4em 0;padding:16px 20px;font-size:.95rem}.blog-article .prose .warn{background:var(--blog-amber-t);color:#6b4a12;border:1px solid #f2dfb6;border-radius:14px;margin:1.4em 0;padding:16px 20px;font-size:.95rem}.blog-article .prose .inline-cta,.blog-article .inline-cta{background:var(--blog-navy);color:#fff;border-radius:16px;flex-wrap:wrap;align-items:center;gap:18px;margin:2em 0;padding:24px 26px;display:flex}.blog-article .prose .inline-cta p,.blog-article .inline-cta p{color:#aeb9d4;flex:1;min-width:220px;margin:0;font-size:.92rem}.blog-article .prose .inline-cta b,.blog-article .inline-cta b{color:#fff;font-family:var(--blog-display);margin-bottom:2px;font-size:1.05rem;display:block}.blog-article .prose .inline-cta .btn,.blog-article .inline-cta .btn{color:var(--blog-navy);white-space:nowrap;background:#fff}.blog-article .author{background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:16px;align-items:center;gap:16px;max-width:720px;margin:44px 0 0;padding:20px 22px;display:flex}.blog-article .author .avatar{background:var(--blog-navy);color:#fff;width:52px;height:52px;font-family:var(--blog-display);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.blog-article .author b{font-size:.95rem;display:block}.blog-article .author p{color:var(--blog-soft);margin-top:2px;margin-bottom:0;font-size:.84rem}.blog-article .author a{color:var(--blog-accent);font-weight:600;text-decoration:none}.blog-article .side{flex-direction:column;gap:18px;display:flex;position:sticky;top:86px}@media (max-width:980px){.blog-article .side{position:static}}.blog-article .scard{background:var(--blog-surface);border:1px solid var(--blog-border);box-shadow:var(--blog-shadow-sm);border-radius:16px;padding:20px}.blog-article .scard h3{margin-bottom:12px;font-size:.95rem}.blog-article .scard .sk{font-family:var(--blog-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--blog-soft);margin-bottom:10px;font-size:.62rem;font-weight:600;display:block}.blog-article .product{background:var(--blog-navy);color:#fff;border:none;position:relative;overflow:hidden}.blog-article .product:before{content:"";background:radial-gradient(at 100% 0,#3b5bdb66,#0000 60%);position:absolute;inset:0}.blog-article .product>*{position:relative}.blog-article .product h3{color:#fff;margin:0;font-size:1.05rem}.blog-article .product p{color:#aeb9d4;margin:8px 0 14px;font-size:.86rem}.blog-article .product ul{margin:0 0 16px;padding:0;list-style:none}.blog-article .product li{color:#dce3f2;padding:.22rem 0 .22rem 1.3rem;font-size:.82rem;position:relative}.blog-article .product li:before{content:"✓";color:#5bd4a4;font-weight:700;position:absolute;left:0}.blog-article .product .btn{color:var(--blog-navy);background:#fff;width:100%}.blog-article .product .sub{font-family:var(--blog-mono);color:#5a6784;text-align:center;margin-top:8px;margin-bottom:0;font-size:.64rem}.blog-article .toc ol{margin:0;padding:0;font-size:.85rem;list-style:none}.blog-article .toc li{margin-bottom:2px}.blog-article .toc a{color:var(--blog-soft);border-left:2px solid #0000;border-radius:8px;padding:.4rem .6rem;text-decoration:none;display:block}.blog-article .toc a:hover{color:var(--blog-accent);background:var(--blog-accent-tint)}.blog-article .toc a.on{color:var(--blog-accent);border-left-color:var(--blog-accent);background:var(--blog-accent-tint);font-weight:600}.blog-article .recent a{border-bottom:1px solid var(--blog-border);align-items:flex-start;gap:12px;padding:.55rem 0;text-decoration:none;display:flex}.blog-article .recent a:last-child{border-bottom:none}.blog-article .recent .mini{background:linear-gradient(135deg,#e9edfb,#d8e0f8);border-radius:8px;flex:none;width:56px;height:42px;position:relative;overflow:hidden}.blog-article .recent .mini img{object-fit:cover;width:100%;height:100%}.blog-article .recent b{font-size:.83rem;font-weight:600;line-height:1.35;display:block}.blog-article .recent a:hover b{color:var(--blog-accent)}.blog-article .recent time{font-family:var(--blog-mono);color:var(--blog-soft);font-size:.66rem}.blog-article .quick a{color:var(--blog-ink);border-bottom:1px solid var(--blog-border);justify-content:space-between;align-items:center;padding:.5rem .2rem;font-size:.85rem;font-weight:500;text-decoration:none;display:flex}.blog-article .quick a:last-child{border-bottom:none}.blog-article .quick a:hover{color:var(--blog-accent)}.blog-article .quick .arr{color:var(--blog-border-hi);font-family:var(--blog-mono)}.blog-article .quick a:hover .arr{color:var(--blog-accent)}.blog-article .related{margin:64px 0 0}.blog-article .related h2{margin-bottom:20px;font-size:1.3rem}.blog-article .rgrid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.blog-article .rcard{background:var(--blog-surface);border:1px solid var(--blog-border);box-shadow:var(--blog-shadow-sm);border-radius:16px;padding:20px;text-decoration:none;transition:all .15s}.blog-article .rcard:hover{border-color:var(--blog-accent);transform:translateY(-2px)}.blog-article .rcard .cl{font-family:var(--blog-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--blog-accent);font-size:.62rem;font-weight:600}.blog-article .rcard h3{margin:8px 0 6px;font-size:.98rem;line-height:1.35}.blog-article .rcard p{color:var(--blog-soft);margin:0;font-size:.82rem}@media (max-width:860px){.blog-article .rgrid{grid-template-columns:1fr}}.blog-article .fab{z-index:70;background:var(--blog-accent);color:#fff;opacity:0;border:none;border-radius:999px;align-items:center;gap:.6rem;padding:.85rem 1.3rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:transform .3s,opacity .3s,background .15s;display:flex;position:fixed;bottom:22px;right:22px;transform:translateY(120px);box-shadow:0 12px 30px -8px #3b5bdb99}.blog-article .fab.show{opacity:1;transform:translateY(0)}.blog-article .fab:hover{background:var(--blog-accent-dk)}.blog-article .fab .ic{background:#fff3;border-radius:50%;place-items:center;width:24px;height:24px;font-size:.8rem;display:grid}.blog-article .fab .x{opacity:.7;cursor:pointer;color:#fff;background:0 0;border:none;margin-left:.3rem;padding:.1rem .2rem;font-size:.85rem}.blog-article .fab .x:hover{opacity:1}@media (max-width:640px){.blog-article .fab{justify-content:center;bottom:14px;left:14px;right:14px}}
