/* The final, shared typography layer for all adopted page types.
   Role-based tokens supersede the historical page-specific size overrides. */
.bs-site{
 --type-title:clamp(44px,5.4vw,78px);
 --type-section:clamp(30px,3.2vw,46px);
 --type-card:clamp(23px,2vw,28px);
 --type-body:18px;--type-lead:clamp(20px,1.55vw,22px);
 --type-small:14px;--type-label:12px;--type-action:17px;
 --type-summary:20px;--type-quote:clamp(24px,2.25vw,32px);
}
.bs-site main h1{font-size:var(--type-title)!important;font-weight:600!important;line-height:1.06!important;letter-spacing:-.045em!important;text-wrap:balance}
.bs-site main h2{font-size:var(--type-section)!important;font-weight:600!important;line-height:1.13!important;letter-spacing:-.035em!important;text-wrap:balance}
.bs-site main h3,.bs-site main h4{font-size:var(--type-card)!important;font-weight:600!important;line-height:1.22!important;letter-spacing:-.02em!important;text-wrap:balance}
.bs-site main :is(p,li){font-size:var(--type-body)!important;line-height:1.65!important}
.bs-site main :is(.bs-lead,.fw-lead,.hub-problem>p,.rs-hero p){font-size:var(--type-lead)!important;line-height:1.55!important}
.bs-site main :is(.eyebrow,.bs-eyebrow,.rs-kicker,.fw-kicker,.dimension-route-label,.post-card__tag,.bs-link-block__label){font-size:var(--type-label)!important;line-height:1.5!important;font-weight:500!important;letter-spacing:.1em!important}
.bs-site main :is(.fw-muted,.layer-hint,figcaption,.rs-metric-label,.bs-link-block__sub,.scene-note,.rs-article-meta,.post-card__meta){font-size:var(--type-small)!important;line-height:1.5!important}
.bs-site main :is(.rs-model-map strong,.bs-link-block__title,.post-card__title,.bs-og-home__title,.cell>strong){font-size:var(--type-card)!important;line-height:1.22!important;font-weight:600!important;letter-spacing:-.02em!important}
.bs-site main :is(.rs-card,.rs-option,.post-card__excerpt){font-size:var(--type-body);line-height:1.65}
.bs-site main :is(blockquote p,.bs-quote p,.bs-callout p){font-size:var(--type-quote)!important;line-height:1.35!important;letter-spacing:-.02em}
.bs-site main :is(blockquote p:has(cite),blockquote cite){font-size:var(--type-small)!important;line-height:1.5!important;letter-spacing:0}
.bs-site main summary{font-size:var(--type-summary)!important;font-weight:600!important;line-height:1.4!important}
.bs-site main :is(.rs-contents>summary,.fw-reading-item>summary){font-size:var(--type-action)!important}
.bs-site main :is(.rs-button,.bs-button,a.action,.contact-primary){font-size:var(--type-action)!important;font-weight:600!important;line-height:1.4!important}
/* Native inline badges must never receive block-card padding while remaining inline. */
.bs-site main span.rs-card{display:inline-block;max-width:100%;padding:9px 13px;margin:5px 8px 5px 0;vertical-align:top;font-size:var(--type-small);line-height:1.5;overflow-wrap:anywhere}
.bs-site main .rs-grid>br{display:none}
.bs-site main .rs-scene-controls button{font-family:var(--bs-font);font-size:var(--type-small);line-height:1.4}
/* Profile: a proper timeline, readable proof, and orderly qualification lists. */
.bs-site .rs-profile .rs-hero .rs-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px}
.bs-site .rs-profile .rs-hero .rs-actions{margin-top:28px}
.bs-site .rs-profile .rs-hero img{aspect-ratio:4/5;max-height:620px;object-fit:cover;object-position:center 25%}
.bs-site .rs-profile .rs-timeline{grid-template-columns:200px minmax(0,1fr);gap:44px;padding:40px 0 40px 30px;margin:0}
.bs-site .rs-profile .rs-timeline-meta{min-width:0}
.bs-site .rs-profile .rs-timeline-meta .rs-kicker{margin-bottom:14px}
.bs-site .rs-profile .rs-timeline-title{margin-bottom:0}
.bs-site .rs-profile .rs-timeline-role{font-size:var(--type-card)!important;line-height:1.3!important;font-weight:500;color:var(--rs-paper);margin-bottom:20px}
.bs-site .rs-profile .rs-timeline-body>p{max-width:760px}
.bs-site .rs-profile .rs-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.bs-site .rs-profile .rs-project-grid .rs-card{padding:22px}
.bs-site .rs-profile .rs-project-grid strong{display:block;font-size:20px;font-weight:600;line-height:1.3;margin-bottom:12px}
.bs-site .rs-profile .rs-project-grid strong+br{display:none}
.bs-site .rs-profile .rs-project-grid span{font-size:var(--type-body);line-height:1.65;color:var(--rs-muted)}
.bs-site .rs-profile .rs-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;border-top:1px solid var(--rs-line);padding-top:26px}
.bs-site .rs-profile .rs-metric-value{display:block;font-size:clamp(32px,3vw,44px);font-weight:600;line-height:1.15;color:#f2b707;letter-spacing:-.035em;margin-bottom:10px}
.bs-site .rs-profile .rs-metric-label{display:block;max-width:200px;color:var(--rs-muted)}
.bs-site .rs-profile .rs-credentials>div{padding:21px 0;border-bottom:1px solid var(--rs-line)}
.bs-site .rs-profile .rs-credentials>div:first-child{padding-top:0}
.bs-site .rs-profile .rs-credentials strong{display:block;font-size:20px;line-height:1.35;margin-bottom:8px;font-weight:600}
.bs-site .rs-profile .rs-credentials strong+br{display:none}
.bs-site .rs-profile .rs-credentials span{font-size:var(--type-small);color:var(--rs-muted)}
.bs-site .rs-profile .rs-competencies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;list-style:none;padding:0;margin:0}
.bs-site .rs-profile .rs-competencies li{margin:0;padding:14px 0;border-bottom:1px solid var(--rs-line);color:var(--rs-paper);font-size:16px!important;line-height:1.4!important}
.bs-site .rs-profile #rs-section-5 .bs-link-block{margin:0}
@media(max-width:900px){
 .bs-site .rs-profile .rs-hero .rs-grid{gap:28px}
 .bs-site .rs-profile .rs-timeline{grid-template-columns:145px minmax(0,1fr);gap:28px}
 .bs-site .rs-profile .rs-project-grid{grid-template-columns:1fr}
 .bs-site .rs-profile #rs-section-3>.rs-container>.rs-grid{grid-template-columns:1fr;gap:44px}
}
@media(max-width:650px){
 .bs-site{--type-summary:18px}
 .bs-site .rs-profile .rs-hero .rs-grid{grid-template-columns:1fr;gap:32px}
 .bs-site .rs-profile .rs-hero img{max-height:480px}
 .bs-site .rs-profile .rs-timeline{grid-template-columns:1fr;gap:20px;padding:30px 0 30px 23px}
 .bs-site .rs-profile .rs-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .bs-site .rs-profile .rs-project-grid{grid-template-columns:1fr}
 .bs-site .rs-profile #rs-section-5 .rs-grid{grid-template-columns:1fr}
}
