/* Editorial layout. Shares the site's palette, navigation and theme setting. */
.blog-shell{--blog-accent:#2563eb;--blog-soft:#eaf1ff;max-width:1200px;margin:0 auto;padding:26px 28px 20px}
html.dark .blog-shell{--blog-accent:#8db7ff;--blog-soft:#192d4b}
.blog-shell a{color:var(--blog-accent);text-underline-offset:4px}
.blog-shell a:focus-visible,.blog-shell summary:focus-visible{outline:3px solid var(--blog-accent);outline-offset:5px;border-radius:3px}
.blog-breadcrumbs{margin:0 0 30px;font-size:.8rem;color:var(--text-muted)}
.blog-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0}
.blog-breadcrumbs li{min-width:0;overflow-wrap:anywhere}
.blog-breadcrumbs li+li::before{content:'/';margin-right:8px;opacity:.5}
.blog-breadcrumbs a{color:var(--text-muted);text-decoration:none}
.blog-breadcrumbs a:hover{color:var(--blog-accent)}
.blog-hero{position:relative;padding:48px 0 45px;border-bottom:1px solid var(--border);background:radial-gradient(ellipse at 90% 40%,var(--blog-soft),transparent 55%)}
.blog-eyebrow{display:flex;align-items:center;gap:9px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.69rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--blog-accent)}
.blog-dot{display:inline-block;background:var(--blog-accent);width:7px;height:7px;border-radius:50%}
.blog-hero h1{font-size:clamp(2.5rem,6.2vw,4.7rem);line-height:1.08;letter-spacing:-.055em;font-weight:750;margin:24px 0}
.blog-hero h1 span{color:var(--blog-accent)}
.blog-hero>p{font-size:1.12rem;line-height:1.8;max-width:610px;color:var(--text-muted)}
.blog-hero-links{display:flex;align-items:center;flex-wrap:wrap;gap:25px;margin-top:28px;font-size:.88rem;font-weight:600}
.blog-hero-links>a{text-decoration:none}
.blog-shell .blog-button{display:inline-flex;align-items:center;justify-content:center;gap:22px;border:1px solid #2563eb;border-radius:6px;background:#2563eb;color:#fff;padding:12px 20px;font-size:.88rem;font-weight:600;text-decoration:none;min-height:46px;transition:background .15s}
.blog-shell .blog-button:hover{background:#1d4ed8}
.blog-hero-note{display:flex;gap:15px;flex-wrap:wrap;color:var(--text-muted);font-size:.73rem;margin-top:38px}
.blog-hero-note span{color:var(--blog-accent)}
.blog-articles{padding-top:44px;scroll-margin-top:100px}
.blog-section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}
.blog-section-heading h2{font-size:1.65rem;letter-spacing:-.035em;font-weight:700;line-height:1.3;margin-top:9px}
.blog-section-heading>a{font-size:.8rem;white-space:nowrap;text-decoration:none}
.blog-categories{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.blog-categories a{display:inline-flex;gap:9px;align-items:center;padding:9px 14px;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);font-size:.78rem;font-weight:500;text-decoration:none;background:var(--bg-card)}
.blog-categories a:hover,.blog-categories a[aria-current]{color:var(--blog-accent);border-color:var(--blog-accent);background:var(--blog-soft)}
.blog-categories a span{font-size:.65rem;opacity:.8}
.blog-card{min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);overflow:hidden;display:flex;flex-direction:column}
.blog-card-body{padding:30px;display:flex;flex-direction:column;align-items:start;flex:1;min-width:0}
.blog-card h2{font-size:1.35rem;font-weight:700;letter-spacing:-.03em;line-height:1.35;margin:16px 0 12px;overflow-wrap:anywhere}
.blog-card h2 a{color:var(--text);text-decoration:none}
.blog-card h2 a:hover{color:var(--blog-accent)}
.blog-card-body>p{font-size:.9rem;line-height:1.8;color:var(--text-muted);margin-bottom:22px;overflow-wrap:anywhere}
.blog-card-meta{display:flex;flex-wrap:wrap;gap:9px;color:var(--text-muted);font-size:.74rem;line-height:1.8}
.blog-card-body>.blog-card-meta{margin-top:auto}
.blog-card .blog-read-link{display:inline-flex;justify-content:space-between;width:100%;font-size:.82rem;font-weight:600;text-decoration:none;border-top:1px solid var(--border);margin-top:20px;padding-top:16px}
.blog-card .blog-read-link span{font-size:1rem}
.blog-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.blog-card-grid:has(>.blog-card:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.blog-card-featured{display:grid;grid-template-columns:1fr 1fr;margin-bottom:24px;min-height:360px}
.blog-card-featured .blog-card-body{padding:38px;order:0}
.blog-card-featured>.blog-visual,.blog-card-featured>.blog-card-cover{order:1}
.blog-card-featured h2{font-size:1.95rem;line-height:1.25}
.blog-featured-label{color:var(--text-muted)}
.blog-card-featured .blog-eyebrow{flex-wrap:wrap;font-size:.62rem;gap:6px}
.blog-card-cover{display:block;overflow:hidden;background:var(--blog-soft)}
.blog-card-cover img{display:block;width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover}
.blog-card-featured .blog-card-cover img{height:100%;min-height:320px}
.blog-visual{display:flex;flex-direction:column;justify-content:center;padding:28px 34px;background-color:#102440;background-image:radial-gradient(#304663 1px,transparent 1px);background-size:18px 18px;color:#fff}
.blog-visual-top{display:flex;align-items:center;gap:5px;margin-bottom:23px}
.blog-visual-top>span{width:6px;height:6px;border-radius:50%;background:#6a829e}
.blog-visual-top b{margin-left:auto;font:9px ui-monospace,monospace;letter-spacing:2px;color:#a4b9d4}
.blog-visual-stack{display:flex;flex-direction:column;gap:10px}
.blog-visual-stack>div{padding:14px 19px;border:1px solid #395170;border-radius:6px;background:#172f4e}
.blog-visual-stack span{display:block;font:9px ui-monospace,monospace;letter-spacing:1px;color:#a4c6ff;margin-bottom:6px}
.blog-visual-stack strong{font-size:.94rem;font-weight:500;color:#e8f0ff}
.blog-meter{display:block;height:3px;width:65%;margin-top:11px;border-radius:5px;background:linear-gradient(90deg,#75a9ff 68%,#2c476b 68%)}
.blog-meter-short{width:48%}.blog-meter-long{width:81%}
.blog-visual-status{display:flex;align-items:center;gap:8px;font-size:.63rem;color:#a4b9d4;margin-top:23px}
.blog-visual-status i{width:5px;height:5px;border-radius:50%;background:#6ee7b7}
.blog-comparison-cta{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:32px 35px;margin:48px 0 20px;border:1px solid var(--border);border-radius:10px;background:var(--blog-soft)}
.blog-comparison-cta h2{font-size:1.5rem;font-weight:700;letter-spacing:-.03em;margin:10px 0 7px}
.blog-comparison-cta p{font-size:.88rem;color:var(--text-muted)}
.blog-comparison-cta>a{flex-shrink:0}
.blog-empty{padding:45px 30px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card)}
.blog-empty h3{font-size:1.4rem;margin-bottom:14px}.blog-empty p{color:var(--text-muted);max-width:620px;margin-bottom:25px}
.blog-pagination{display:flex;justify-content:center;align-items:center;gap:25px;margin:36px 0 0;font-size:.85rem}
.blog-pagination a{border:1px solid var(--border);border-radius:6px;padding:10px 16px;text-decoration:none}
.blog-article-header{max-width:900px;padding:24px 0 38px;margin:0 auto;border-bottom:1px solid var(--border)}
.blog-article-header>.blog-eyebrow{text-decoration:none}
.blog-article-header h1{font-size:clamp(2rem,4.4vw,3.45rem);line-height:1.16;letter-spacing:-.045em;font-weight:750;margin:21px 0;overflow-wrap:anywhere}
.blog-article-deck{font-size:1.13rem;color:var(--text-muted);line-height:1.8;max-width:810px}
.blog-byline{display:flex;align-items:center;gap:13px;margin-top:28px}
.blog-author-mark{display:flex;justify-content:center;align-items:center;flex-shrink:0;width:42px;height:42px;font-size:1.3rem;font-weight:800;border-radius:50%;background:var(--blog-soft);color:var(--text)}
.blog-author-mark>span{color:var(--blog-accent)}
.blog-byline .blog-author-name{font-size:.83rem;font-weight:600;text-decoration:none;color:var(--text)}
.blog-byline .blog-card-meta{margin-top:3px}
.blog-article-cover{width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover;border-radius:9px;margin-top:32px}
.blog-article-layout{display:grid;grid-template-columns:230px minmax(0,730px);justify-content:center;align-items:start;gap:52px;padding-top:42px}
.blog-article-sidebar{position:sticky;top:100px;min-width:0}
.blog-toc{border-bottom:1px solid var(--border);padding-bottom:25px}
.blog-toc summary{font-size:.77rem;font-weight:700;letter-spacing:.04em;cursor:pointer;margin-bottom:14px}
.blog-toc ol{list-style:none;padding:0;display:flex;flex-direction:column;gap:12px;max-height:48vh;overflow:auto}
.blog-toc a{display:block;font-size:.77rem;line-height:1.55;color:var(--text-muted);text-decoration:none;overflow-wrap:anywhere}
.blog-toc a:hover{color:var(--blog-accent)}
.blog-toc .blog-toc-level-3{padding-left:13px}
.blog-sidebar-note{padding-top:26px}
.blog-sidebar-note .blog-eyebrow{font-size:.62rem}
.blog-sidebar-note p{color:var(--text-muted);font-size:.82rem;line-height:1.7;margin:12px 0}
.blog-sidebar-note>a{font-size:.78rem;font-weight:600;text-decoration:none}
.blog-prose{min-width:0;font-size:1.04rem;line-height:1.9;color:var(--text);overflow-wrap:anywhere}
.blog-prose>:first-child{margin-top:0}
.blog-prose p{margin:0 0 24px}
.blog-prose h2{font-size:1.6rem;letter-spacing:-.025em;line-height:1.35;margin:43px 0 20px;font-weight:700;scroll-margin-top:110px}
.blog-prose h3{font-size:1.17rem;line-height:1.5;margin:30px 0 14px;font-weight:650;scroll-margin-top:110px}
.blog-prose h4,.blog-prose h5,.blog-prose h6{font-size:1.05rem;font-weight:650;margin:24px 0 12px;scroll-margin-top:110px}
.blog-prose ul,.blog-prose ol{margin:0 0 26px;padding-left:25px}
.blog-prose ul{list-style:disc}.blog-prose ol{list-style:decimal}
.blog-prose li{margin:9px 0;padding-left:5px}.blog-prose li>p{margin-bottom:8px}
.blog-prose ul ul,.blog-prose ol ol{margin-bottom:12px}
.blog-prose blockquote{padding:18px 23px;border-left:3px solid var(--blog-accent);background:var(--blog-soft);border-radius:0 5px 5px 0;margin:28px 0;font-size:.96rem}
.blog-prose blockquote>:last-child{margin-bottom:0}
.blog-prose code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.83em;background:var(--bg-hover);padding:2px 5px;border-radius:4px;overflow-wrap:anywhere}
.blog-prose pre{max-width:100%;overflow-x:auto;background:#102440;border:1px solid #395170;border-radius:8px;padding:22px;margin:28px 0;color:#e8f0ff;font-size:.91rem;line-height:1.8}
.blog-prose pre code{padding:0;background:transparent;overflow-wrap:normal;white-space:pre}
.blog-prose table{display:block;max-width:100%;width:max-content;overflow-x:auto;border-collapse:collapse;font-size:.86rem;margin:28px 0}
.blog-prose th,.blog-prose td{text-align:left;min-width:145px;padding:13px 16px;border:1px solid var(--border);vertical-align:top}
.blog-prose th{background:var(--blog-soft);font-weight:600}.blog-prose td{background:var(--bg-card)}
.blog-prose img{max-width:100%;height:auto;display:block;border-radius:8px;margin:26px 0}
.blog-prose hr{border:0;border-top:1px solid var(--border);margin:35px 0}
.blog-tags{display:flex;flex-wrap:wrap;gap:8px;margin:34px 0}
.blog-tags span{font-size:.71rem;color:var(--text-muted);border:1px solid var(--border);padding:5px 10px;border-radius:4px}
.blog-editorial-note{border-top:1px solid var(--border);padding-top:25px;margin-top:35px;font-size:.8rem;line-height:1.8;color:var(--text-muted)}
.blog-editorial-note strong{color:var(--text);font-size:.82rem}.blog-editorial-note p{margin:9px 0 0}
.blog-article-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:28px 0;font-size:.8rem}
.blog-article-bottom a{text-decoration:none}
.blog-related{border-top:1px solid var(--border);padding-top:36px;margin-top:40px}
.blog-skip{position:fixed;left:20px;top:-100px;z-index:2000;padding:12px 18px;background:var(--bg-card);border:2px solid var(--blog-accent);border-radius:6px}
.blog-skip:focus{top:15px}
@media(min-width:769px) and (max-width:1100px){body:has(.blog-shell) .nav-links{gap:14px}body:has(.blog-shell) .nav-links>a,body:has(.blog-shell) .nav-dropdown-toggle{font-size:.8rem!important}body:has(.blog-shell) .logo{font-size:1rem}}
@media(max-width:1000px){.blog-article-layout{grid-template-columns:190px minmax(0,1fr);gap:30px}.blog-card-featured .blog-card-body{padding:28px}.blog-visual{padding:25px}.blog-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-card-featured h2{font-size:1.7rem}}
@media(max-width:768px){.blog-shell{padding:20px 20px 10px}.blog-breadcrumbs{margin-bottom:15px;font-size:.7rem}.blog-hero{padding:32px 0}.blog-hero>p{font-size:1rem}.blog-hero h1{margin:20px 0}.blog-hero-note{gap:8px;font-size:.66rem;margin-top:28px}.blog-articles{padding-top:30px}.blog-card-featured{display:flex}.blog-card-featured>.blog-visual,.blog-card-featured>.blog-card-cover{order:0}.blog-card-featured>.blog-card-body{order:1}.blog-visual{padding:23px 30px}.blog-visual-stack{flex-direction:row;gap:8px}.blog-visual-stack>div{flex:1;padding:13px 10px;min-width:0}.blog-visual-stack strong{font-size:.7rem;line-height:1.5;display:block}.blog-visual-stack span{font-size:.48rem;line-height:1.5}.blog-visual-top{margin-bottom:14px}.blog-visual-status{margin-top:16px}.blog-card-featured .blog-card-body{padding:26px}.blog-card-featured h2{font-size:1.55rem}.blog-card-body{padding:25px}.blog-card h2{font-size:1.3rem}.blog-card-grid,.blog-card-grid:has(>.blog-card:nth-child(2):last-child){grid-template-columns:minmax(0,1fr)}.blog-categories a{font-size:.72rem;padding:8px 11px}.blog-section-heading h2{font-size:1.45rem}.blog-comparison-cta{flex-direction:column;align-items:start;padding:26px;margin-top:32px}.blog-comparison-cta h2{font-size:1.35rem}.blog-article-header{padding:20px 0 28px}.blog-article-deck{font-size:1rem}.blog-byline .blog-card-meta{font-size:.68rem;gap:6px}.blog-article-layout{display:flex;flex-direction:column;gap:30px;padding-top:25px}.blog-article-sidebar{position:static;width:100%}.blog-toc{padding:17px 20px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card)}.blog-toc summary{margin-bottom:0}.blog-toc[open] summary{margin-bottom:16px}.blog-toc ol{max-height:initial}.blog-sidebar-note{display:none}.blog-article-main{width:100%;min-width:0}.blog-prose{font-size:1rem}.blog-prose h2{font-size:1.4rem}.blog-prose pre{padding:16px}.blog-article-bottom{font-size:.74rem}.blog-related{margin-top:30px}}
@media(prefers-reduced-motion:reduce){.blog-shell *{scroll-behavior:auto;transition:none}}
@media print{.blog-article-sidebar,.blog-related,.blog-article-bottom,.blog-comparison-cta,.blog-skip,.blog-categories,.blog-hero-links{display:none}.blog-article-layout{display:block}.blog-prose{color:#000}.blog-shell{max-width:none;padding:0}.blog-article-header h1{font-size:30pt}}
