.blog-page{background:var(--vis-white);color:var(--vis-ink)}
.blog-page .vis-wrap{max-width:1240px;width:calc(100% - 48px);margin-inline:auto}
.blog-masthead{background:var(--vis-navy-900);color:var(--vis-white);padding:48px 0 112px}
.blog-masthead h1{font-size:clamp(32px,4.3vw,60px);letter-spacing:-.035em;line-height:1.08;margin:16px 0 18px;font-weight:800;max-width:1100px;overflow-wrap:anywhere}
.blog-masthead p{font-size:clamp(19px,2.2vw,26px);line-height:1.5;color:var(--vis-on-dark-1);max-width:1000px;margin:0}
.blog-eyebrow{color:var(--vis-coral);font-family:'IBM Plex Mono',monospace;font-size:14px;font-weight:600}
.blog-list-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(270px,1fr);gap:32px;position:relative;margin-top:-72px!important;padding-bottom:56px;align-items:start}
.blog-feed,.blog-list-layout>aside,.blog-article-layout>*{min-width:0}
.blog-list-layout>aside{padding-top:88px}
.blog-card{border:1px solid var(--vis-border);border-radius:16px;overflow:hidden;background:var(--vis-white);display:flex;flex-direction:column;min-width:0}
.blog-card__image{display:block;background:var(--vis-paper);overflow:hidden}
.blog-card__image img{display:block;width:100%;height:auto;aspect-ratio:800/420;object-fit:cover}
.blog-card--featured .blog-card__image img{aspect-ratio:2.6}
.blog-card__body{padding:24px;display:flex;flex:1;flex-direction:column;align-items:flex-start}
.blog-meta{font-family:'IBM Plex Mono',monospace;font-size:12px;line-height:1.6;color:var(--vis-slate-600);font-weight:500}
.blog-card .blog-meta:before{content:'';display:inline-block;width:24px;height:4px;background:var(--vis-coral);margin:0 12px 3px 0;border-radius:2px}
.blog-card h2{font-size:clamp(21px,2vw,26px);line-height:1.22;letter-spacing:-.025em;margin:14px 0 12px;font-weight:800}
.blog-card--featured h2{font-size:clamp(28px,3vw,40px)}
.blog-card h2 a{color:var(--vis-ink);text-decoration:none}
.blog-card h2 a:hover{color:var(--vis-cyan-deep);text-decoration:underline;text-underline-offset:4px}
.blog-card p{font-size:17px;line-height:1.55;color:var(--vis-slate-600);margin:0 0 12px;overflow-wrap:anywhere}
.blog-card--featured p{font-size:20px}
.blog-text-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-weight:700;font-size:16px;text-decoration:none;color:var(--vis-cyan-deep);overflow-wrap:anywhere}
.blog-card .blog-text-link{margin-top:auto}
.blog-text-link:hover{text-decoration:underline;text-underline-offset:4px}
.blog-section-title{font-size:30px;line-height:1.2;letter-spacing:-.025em;margin:32px 0 20px}
.blog-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.blog-recommendations{display:grid;gap:24px}
.blog-recommendation{padding:28px;border-radius:16px;border:1px solid var(--vis-border);background:var(--vis-paper);overflow-wrap:anywhere}
.blog-recommendation:before{content:'';display:block;width:28px;height:4px;margin-bottom:16px;background:var(--vis-cyan-deep);border-radius:2px}
.blog-recommendation h2{font-size:25px;line-height:1.2;letter-spacing:-.02em;margin:0 0 16px;font-weight:800}
.blog-recommendation p{font-size:17px;line-height:1.6;color:var(--vis-slate-600);margin:0 0 16px}
.blog-recommendation--free{background:var(--vis-navy-900);color:var(--vis-white);border-color:var(--vis-navy-900)}
.blog-recommendation--free:before{background:var(--vis-cyan-bright)}
.blog-recommendation--free p{color:var(--vis-on-dark-1)}
.blog-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 18px;border-radius:9px;background:var(--vis-cyan-deep);color:white;font-size:16px;font-weight:750;text-align:center;text-decoration:none;line-height:1.4;border:0}
.blog-recommendation--free .blog-button{background:var(--vis-cyan-bright);color:var(--vis-navy-900);width:100%;box-sizing:border-box}
.blog-button:hover{filter:brightness(.94)}
.blog-pagination{display:flex;justify-content:center;gap:24px;margin:28px 0 0}
.blog-pagination a{color:var(--vis-cyan-deep);min-height:44px;padding:10px 16px;border:1px solid var(--vis-border);border-radius:9px;font-weight:650;text-align:center}
.blog-feed-status{min-height:24px;text-align:center;color:var(--vis-slate-600);font-size:14px;line-height:1.6}
.blog-empty{background:var(--vis-white);border:1px solid var(--vis-border);padding:40px;border-radius:16px;min-height:280px}
.blog-empty h2{font-size:30px;line-height:1.2}.blog-empty p{font-size:18px;line-height:1.6}
.blog-breadcrumb{display:flex;align-items:center;gap:16px;color:var(--vis-on-dark-1);font-size:13px;margin-bottom:24px;flex-wrap:wrap}
.blog-breadcrumb a{color:inherit;display:inline-flex;align-items:center;min-height:44px}
.blog-masthead--article{padding:24px 0 112px}
.blog-masthead--article .blog-meta{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:24px;color:var(--vis-on-dark-1);font-size:13px}
.blog-masthead--article .blog-meta a{color:inherit;min-height:44px;display:inline-flex;align-items:center}
.blog-article-wrap{margin-top:-72px!important;position:relative;padding-bottom:56px}
.blog-hero{margin:0 0 36px}.blog-hero img{display:block;width:100%;height:auto;aspect-ratio:3.1;object-fit:cover;border-radius:20px}
.blog-hero figcaption{font-size:13px;color:var(--vis-slate-600);margin-top:8px}
.blog-article-layout{display:grid;grid-template-columns:100px minmax(0,1fr) 300px;gap:32px;align-items:start}
.blog-share{display:flex;flex-direction:column;align-items:center;gap:26px;position:sticky;top:96px;font-size:18px;line-height:1.4;color:var(--vis-slate-600);text-align:center}
.blog-share__title{margin-bottom:8px}
.blog-share a,.blog-share button{box-sizing:border-box;font:inherit;cursor:pointer;text-decoration:none}
.blog-share__circle{width:66px;height:66px;flex:none;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;color:var(--vis-white);box-shadow:0 0 0 1px var(--vis-border);transition:box-shadow .18s ease}
/* Platform identity colors reproduce the selected social-share reference. */
.blog-share__circle--facebook{background:#365d98}.blog-share__circle--linkedin{background:#007eae}.blog-share__circle--x{background:#000}.blog-share__circle--copy{background:var(--vis-slate-600)}
.blog-share__icon{display:block;width:32px;height:32px;flex:none;background:currentColor;mask:var(--blog-share-icon) center/contain no-repeat}
.blog-share__icon--facebook{--blog-share-icon:url('/images/icons/social-facebook.svg');width:22px;height:38px}
.blog-share__icon--linkedin{--blog-share-icon:url('/images/icons/social-linkedin.svg')}
.blog-share__icon--x{--blog-share-icon:url('/images/icons/social-x.svg')}
.blog-share__icon--link{--blog-share-icon:url('/images/icons/link-45deg.svg');width:40px;height:40px}
.blog-share__download{width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:22px;padding:30px 0 0;border-top:2px solid var(--vis-border);color:var(--vis-slate-600);line-height:1.4}
.blog-share__icon--download{--blog-share-icon:url('/images/icons/download.svg');width:40px;height:40px}
.blog-share__circle:hover{box-shadow:0 0 0 3px var(--vis-border)}.blog-share__download:hover{color:var(--vis-cyan-deep)}
.blog-share [data-share-status]{font-size:13px;overflow-wrap:anywhere}.blog-share [data-share-status]:empty,.blog-share [hidden]{display:none}
.blog-prose{font-size:18px;line-height:1.7;color:var(--vis-text-2);overflow-wrap:anywhere}
.blog-prose p{margin:0 0 24px}.blog-prose h2{font-size:clamp(26px,2.5vw,34px);line-height:1.2;letter-spacing:-.025em;margin:36px 0 18px;color:var(--vis-ink);scroll-margin-top:110px}
.blog-prose h2:first-child{margin-top:0}.blog-prose h3{font-size:23px;line-height:1.3;color:var(--vis-ink);scroll-margin-top:110px}
.blog-prose a{color:var(--vis-cyan-deep);text-decoration:underline;text-underline-offset:3px}.blog-prose li{margin-bottom:10px}
.blog-prose blockquote{margin:28px 0;border-left:4px solid var(--vis-coral);padding:20px 24px;background:var(--vis-coral-soft);font-size:22px;font-weight:650;line-height:1.4;color:var(--vis-ink);border-radius:0 12px 12px 0}
.blog-prose blockquote p:last-child{margin-bottom:0}.blog-updated{font-size:13px;color:var(--vis-slate-600);border-top:1px solid var(--vis-border);padding-top:20px}
.blog-toc{padding:24px;background:var(--vis-paper);border:1px solid var(--vis-border);border-radius:14px;margin-bottom:24px}
.blog-toc h2{font-size:21px;line-height:1.3;margin:0 0 12px}.blog-toc ol{margin:0;padding-left:20px;color:var(--vis-cyan-deep)}
.blog-toc a{display:block;padding:10px 0;font-size:15px;line-height:1.4;color:var(--vis-text-2);text-decoration:none}.blog-toc a:hover{text-decoration:underline}
.blog-related{max-width:900px;margin:48px auto 0}.blog-related>h2{font-size:30px}.blog-back{margin-top:16px}
.blog-preview-notice{padding:12px 24px;background:var(--vis-coral-soft);color:var(--vis-ink);font-weight:700}
.blog-page :is(a,button):focus-visible{outline:3px solid var(--vis-cyan-deep);outline-offset:4px}.blog-masthead a:focus-visible{outline-color:var(--vis-cyan-bright)}
@media(max-width:1100px){.blog-article-layout{grid-template-columns:minmax(0,1fr) 280px;gap:28px}.blog-share{grid-column:1/-1;position:static;flex-direction:row;flex-wrap:wrap;align-items:center}.blog-share{gap:16px;justify-content:flex-start}.blog-share__title{width:100%;margin:0;text-align:left}.blog-share__circle{width:48px;height:48px}.blog-share__icon--facebook{width:18px;height:30px}.blog-share__icon--linkedin,.blog-share__icon--x{width:25px;height:25px}.blog-share__icon--link{width:34px;height:34px}.blog-share__download{width:auto;max-width:130px;min-height:48px;flex-direction:row;gap:10px;margin:0 0 0 4px;padding:0 0 0 20px;border-top:0;border-left:2px solid var(--vis-border);font-size:14px;text-align:left}.blog-share__icon--download{width:28px;height:28px}.blog-share [data-share-status]{width:100%;text-align:left}.blog-hero img{aspect-ratio:2.6}.blog-recommendation{padding:24px}.blog-list-layout{gap:24px}}
@media(max-width:980px){.blog-page .vis-wrap{width:calc(100% - 40px)}.blog-masthead{padding:32px 0 84px}.blog-list-layout{grid-template-columns:1fr;margin-top:-48px!important}.blog-list-layout>aside{padding-top:8px}.blog-card-grid{gap:16px}.blog-card__body{padding:20px}.blog-card--featured .blog-card__image img{aspect-ratio:1.9}.blog-card--featured p{font-size:18px}.blog-article-wrap{margin-top:-48px!important}.blog-article-layout{display:flex;flex-direction:column;gap:28px}.blog-article-layout>*{width:100%;box-sizing:border-box}.blog-share{gap:12px}.blog-hero img{aspect-ratio:1.8;border-radius:16px}.blog-masthead--article .blog-meta{gap:8px;font-size:12px}.blog-masthead--article .blog-meta a{min-height:36px}.blog-prose{font-size:18px}.blog-toc{display:none}.blog-recommendations{gap:16px}.blog-breadcrumb{margin-bottom:12px;gap:10px}.blog-breadcrumb>span:last-child{display:none}.blog-empty{padding:28px}.blog-related{margin-top:36px}}
@media(max-width:520px){.blog-share__download{width:100%;max-width:none;flex-basis:100%;margin:6px 0 0;padding:16px 0 0;border-left:0;border-top:1px solid var(--vis-border);justify-content:flex-start}.blog-share__download span:last-child{max-width:none}.blog-card-grid{grid-template-columns:1fr}.blog-section-title{font-size:27px}.blog-recommendation h2{font-size:25px}.blog-masthead h1{font-size:36px}.blog-masthead--article h1{font-size:38px}.blog-prose blockquote{padding:18px;font-size:20px}.blog-card--featured .blog-card__image img{aspect-ratio:1.9}}
@media(prefers-reduced-motion:reduce){.blog-page *{scroll-behavior:auto!important;transition:none!important}}
.blog-masthead:not(.blog-masthead--article){background-image:linear-gradient(90deg,rgba(11,18,32,.88),rgba(11,18,32,.45)),url('/images/hero-place-photo.webp');background-position:center 62%;background-size:cover}
.blog-recommendation__image{width:92px;height:148px;object-fit:cover;float:right;margin:0 0 16px 18px;border-radius:8px}.blog-recommendation:after{content:'';display:block;clear:both}
.blog-page .site-header__inner{padding-inline:0}.blog-page .site-menu{min-width:0}.blog-page .site-nav{gap:20px}
@media(min-width:981px){.blog-list-layout>aside{padding-top:56px}.blog-masthead:not(.blog-masthead--article){padding-top:40px;padding-bottom:96px}.blog-card--featured .blog-card__image img{aspect-ratio:2.8}}
@media(max-width:1100px) and (min-width:761px){.blog-page .site-nav{gap:10px;font-size:13px}}
