/* Shared layout, typography, and components. No build step or external assets. */
:root { color-scheme: light; --ink:#17191d; --muted:#616875; --blue:#0066cc; --line:#dfe3e8; --surface:#f5f6f8; --radius:24px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:92px; }
body { margin:0; color:var(--ink); background:#fff; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; height:auto; }
a { color:var(--blue); text-decoration-thickness:1px; text-underline-offset:4px; }
button,input { font:inherit; }
button,a,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { line-height:1.12; letter-spacing:-.035em; font-weight:650; text-wrap:balance; }
h1 { font-size:clamp(2.6rem,6vw,4.7rem); }
h2 { font-size:clamp(2rem,3.5vw,3rem); }
h3 { font-size:1.45rem; }
p + p { margin-top:1rem; }
ul { padding-left:1.25rem; }
li + li { margin-top:.5rem; }
.container { width:min(1120px,calc(100% - 64px)); margin-inline:auto; }
.skip-link { position:fixed; top:10px; left:16px; z-index:30; padding:12px 20px; background:#fff; border:1px solid var(--blue); border-radius:8px; transform:translateY(-200%); }
.skip-link:focus { transform:translateY(0); }
.site-header { position:sticky; top:0; z-index:20; border-bottom:1px solid #e9ebef; background:rgba(255,255,255,.96); backdrop-filter:blur(18px); }
.nav-shell { display:flex; min-height:78px; align-items:center; justify-content:space-between; gap:24px; }
.brand { color:var(--ink); font-size:18px; font-weight:650; letter-spacing:-.025em; text-decoration:none; line-height:1.2; }
.brand span { display:block; margin-top:5px; font-size:11px; font-weight:500; color:var(--muted); letter-spacing:.045em; }
.primary-nav { display:flex; align-items:center; gap:30px; font-size:13px; }
.primary-nav a { color:var(--muted); text-decoration:none; padding-block:10px; }
.primary-nav a:hover,.primary-nav a[aria-current="page"] { color:var(--ink); }
.primary-nav a[aria-current="page"] { box-shadow:inset 0 -2px var(--blue); }
.primary-nav .nav-contact { color:#fff; padding:9px 19px; background:var(--ink); border-radius:99px; }
.primary-nav .nav-contact:hover { color:#fff; background:#343a44; }
.eyebrow { color:var(--blue); font-size:11px; font-weight:700; line-height:1.5; text-transform:uppercase; letter-spacing:.14em; margin-bottom:15px; }
.hero { display:grid; grid-template-columns:minmax(0,1fr) 360px; align-items:center; gap:40px; padding-block:12px 0; }
.hero-copy { padding-block:32px 48px; }
.hero h1 { font-size:clamp(3rem,5.5vw,4.6rem); }
.hero-tagline { font-size:23px; font-weight:550; letter-spacing:-.03em; margin-top:17px; }
.hero .lead { max-width:600px; margin-top:12px; font-size:17px; }
.lead { color:var(--muted); font-size:20px; line-height:1.6; max-width:760px; }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; align-items:center; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; gap:9px; padding:10px 23px; border-radius:99px; background:var(--blue); border:1px solid var(--blue); color:#fff; text-decoration:none; font-size:14px; font-weight:600; line-height:1.5; transition:background .15s,transform .15s; }
.button:hover { background:#0058b0; border-color:#0058b0; transform:translateY(-1px); }
.button-secondary { color:var(--ink); background:#fff; border-color:#c9cfd7; }
.button-secondary:hover { background:var(--surface); border-color:#929cab; }
.text-link { font-weight:600; font-size:14px; text-decoration:none; }
.text-link:hover { text-decoration:underline; }
.hero-portrait { margin:0; width:100%; max-width:360px; justify-self:center; align-self:end; overflow:hidden; }
/* Clip the PNG's 12px transparent bottom inset so the suit meets the next section. */
.hero-portrait img { width:100%; height:auto; margin-bottom:-3.16623%; }
.proof-strip { display:flex; gap:35px; margin-top:24px; }
.proof-strip strong { display:block; font-size:24px; line-height:1.1; font-weight:650; letter-spacing:-.04em; }
.proof-strip span { color:var(--muted); font-size:11px; line-height:1.5; display:block; margin-top:5px; }
.section { padding-block:80px; }
.section-heading { margin-bottom:35px; }
.section-heading > p:not(.eyebrow) { max-width:720px; margin-top:16px; color:var(--muted); }
.section-heading .eyebrow { margin-top:0; }
.section-heading h2 { padding-bottom:20px; border-bottom:1px solid var(--line); }
.section-topline { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:25px; }
.section-topline p:not(.eyebrow) { margin-top:10px; font-size:13px; color:var(--muted); }
.section-topline h2 { font-size:30px; }
.section-topline > a { flex-shrink:0; }
.industry-section { background:var(--surface); border-top:1px solid #eceef2; border-bottom:1px solid #eceef2; padding:33px 0 30px; }
.chart { --label-width:247px; --chart-gap:22px; }
.chart-axis { position:relative; height:25px; margin-left:calc(var(--label-width) + var(--chart-gap)); margin-right:35px; font-variant-numeric:tabular-nums; font-size:10px; color:var(--muted); }
.chart-axis span { position:absolute; transform:translateX(-50%); }
.chart-axis span:first-child { transform:none; }
.chart-axis span:last-child { transform:translateX(-100%); }
.industry-row { border-top:1px solid var(--line); }
.industry-row summary { display:grid; grid-template-columns:var(--label-width) 1fr 13px; gap:var(--chart-gap); align-items:center; padding:12px 0; cursor:pointer; list-style:none; }
.industry-row summary::-webkit-details-marker { display:none; }
.industry-row summary::after { content:'+'; font-size:18px; font-weight:400; color:var(--muted); text-align:center; }
.industry-row[open] summary::after { content:'−'; }
.industry-label strong { font-size:13px; display:block; line-height:1.35; font-weight:600; letter-spacing:-.01em; }
.industry-label small { font-size:10px; color:var(--muted); display:block; margin-top:3px; line-height:1.4; }
.timeline-track { height:28px; position:relative; border-left:1px solid #dde2e9; border-right:1px solid #dde2e9; }
.timeline-tick { position:absolute; top:0; bottom:0; width:1px; background:#dde2e9; }
.timeline-bar { position:absolute; top:6px; left:var(--start); width:var(--duration); min-width:2px; height:16px; border-radius:3px; background:var(--bar-color,var(--blue)); }
.industry-row:nth-child(3) { --bar-color:#087f86; }
.industry-row:nth-child(4) { --bar-color:#5862a5; }
.industry-row:nth-child(5) { --bar-color:#3676a5; }
.industry-row:nth-child(6) { --bar-color:#45677e; }
.industry-detail { padding:4px 35px 18px 0; font-size:13px; color:var(--muted); }
.industry-detail ul { margin:0; display:grid; grid-template-columns:1fr 1fr; gap:7px 30px; list-style:none; padding:0; }
.industry-detail li { margin:0; }
.industry-detail strong { color:var(--ink); font-weight:600; }
.chart-note { margin-top:17px; color:var(--muted); font-size:11px; }
.two-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.two-column > .card:last-child:nth-child(odd) { grid-column:1 / -1; }
.card { padding:32px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.card p { color:var(--muted); margin-top:14px; }
.work-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.work-card { display:flex; flex-direction:column; padding:36px; background:var(--surface); border-radius:var(--radius); min-height:340px; }
.work-card:first-child { grid-column:span 2; display:grid; grid-template-columns:1.15fr .85fr; gap:70px; background:#102333; color:#fff; padding:44px; }
.work-card .work-meta { font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--muted); margin-bottom:22px; }
.work-card h3 { font-size:29px; max-width:420px; }
.work-card p:not(.work-meta) { color:var(--muted); margin-top:19px; font-size:15px; }
.work-card:first-child p,.work-card:first-child .work-meta { color:#c2d0de; }
.tag-list { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.tag-list span { display:inline-block; border:1px solid #dce1e7; border-radius:7px; padding:4px 9px; color:#586271; background:#fff; font-size:11px; line-height:1.4; }
.work-card:first-child .tag-list span { background:#183245; border-color:#355062; color:#dce9f6; }
.architecture { align-self:center; border:1px solid #365065; border-radius:18px; padding:24px; background:#152d3f; }
.architecture-label { text-transform:uppercase; font-size:9px; letter-spacing:.14em; color:#aabed0; margin-bottom:20px; }
.architecture-node { border:1px solid #476277; border-radius:10px; padding:12px; text-align:center; font-size:13px; font-weight:550; background:#1a374d; }
.architecture-node:last-child { color:#a4d9fc; border-color:#507d9e; background:#20465f; }
.architecture-connector { width:1px; height:21px; margin:auto; background:#60819a; }
.work-footer { margin-top:26px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.work-footer p { max-width:640px; color:var(--muted); font-size:14px; }
.expertise-section { background:var(--surface); }
.expertise-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:80px; }
.expertise-intro h2 { margin-bottom:20px; }
.expertise-intro > p:not(.eyebrow) { color:var(--muted); }
.expertise-list { list-style:none; padding:0; margin:0; }
.expertise-list li { display:grid; grid-template-columns:33px 1fr; gap:20px; padding:22px 0; border-top:1px solid #d5dbe3; margin:0; }
.expertise-list li:first-child { padding-top:0; border-top:0; }
.expertise-list .number { color:var(--blue); font-size:12px; font-variant-numeric:tabular-nums; padding-top:4px; }
.expertise-list h3 { font-size:20px; }
.expertise-list p { margin-top:9px; color:var(--muted); font-size:14px; }
.philosophy-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; }
.philosophy-grid h3 { font-size:21px; }
.philosophy-grid p { color:var(--muted); font-size:15px; margin-top:15px; }
.philosophy-grid .number { display:block; color:var(--blue); font-size:12px; padding-bottom:20px; }
.recognition-strip { border-top:1px solid var(--line); margin-top:48px; padding-top:28px; display:flex; gap:35px; color:var(--muted); font-size:12px; }
.recognition-strip strong { display:block; color:var(--ink); font-weight:600; margin-bottom:5px; }
.contact-band { background:#edf4fb; padding-block:64px; }
.contact-band .container { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.contact-band h2 { font-size:clamp(2rem,3vw,2.6rem); }
.contact-band p { color:var(--muted); margin-top:14px; }
.contact-band .actions { margin-top:0; flex-shrink:0; }
.site-footer { padding-block:27px; font-size:12px; color:var(--muted); }
.footer-inner { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; }
.footer-inner a { color:var(--muted); text-decoration:none; }
.footer-inner a:hover { color:var(--blue); }
.footer-links { display:flex; gap:24px; }
.page-hero { padding-block:70px 54px; border-bottom:1px solid var(--line); }
.page-hero h1 { margin-bottom:22px; }
.page-hero .lead { max-width:850px; }
.page-hero .actions + p { margin-top:20px; font-size:14px; }
.career-role { display:grid; grid-template-columns:270px 1fr; gap:45px; border-top:1px solid var(--line); padding-block:32px; }
.career-role:first-child { border-top:0; padding-top:0; }
.role-meta .date { color:var(--blue); font-size:12px; margin-bottom:10px; }
.role-meta h3 { font-size:24px; }
.role-meta .role-title { font-size:13px; color:var(--muted); margin-top:13px; }
.role-body { color:var(--muted); font-size:15px; }
.role-body ul { margin-top:0; }
.credential-list { color:var(--muted); padding-left:20px; }
.credential-list strong { color:var(--ink); }
.section + .section { padding-top:0; }
.section + .expertise-section { padding-top:80px; }
.expertise-section + .section { padding-top:80px; }
@media(min-width:1600px) { .hero { padding-top:32px; } }
@media(max-width:960px) {
  .hero { grid-template-columns:minmax(0,1fr) 300px; gap:32px; }
  .hero h1 { font-size:56px; }
  .proof-strip { gap:25px; }
  .work-card:first-child { gap:35px; padding:32px; }
  .expertise-layout { gap:45px; }
  .contact-band .container { align-items:start; flex-direction:column; gap:25px; }
  .career-role { grid-template-columns:220px 1fr; gap:30px; }
}
@media(max-width:700px) {
  html { scroll-padding-top:115px; }
  .container { width:calc(100% - 40px); }
  .nav-shell { min-height:94px; padding-block:13px 8px; flex-wrap:wrap; gap:10px; }
  .brand { font-size:17px; }
  .brand span { display:none; }
  .primary-nav { width:100%; justify-content:space-between; gap:16px; font-size:12px; }
  .primary-nav a { padding-block:7px; }
  .primary-nav .nav-contact { padding:6px 15px; }
  .hero { grid-template-columns:minmax(0,1fr) 170px; gap:18px; padding-block:34px 0; align-items:start; }
  .hero-copy { display:contents; padding:0; }
  .hero .eyebrow { grid-column:span 2; margin:0; font-size:10px; }
  .hero h1 { grid-column:span 2; font-size:clamp(2.35rem,8vw,3.2rem); }
  .hero-tagline { grid-column:span 2; margin-top:0; font-size:21px; }
  .hero .lead { grid-column:span 2; margin:0; font-size:16px; }
  .hero .actions { grid-column:span 2; margin-top:0; }
  .hero .button { padding:10px 16px; font-size:12px; }
  .hero .proof-strip { grid-column:1; margin:0; padding-block:8px 24px; flex-direction:column; align-self:center; gap:19px; }
  .hero-portrait { grid-column:2; }
  .proof-strip strong { font-size:23px; }
  .proof-strip span { max-width:95px; font-size:10px; }
  .section { padding-block:55px; }
  .section + .expertise-section { padding-top:55px; }
  .expertise-section + .section { padding-top:55px; }
  .section-topline { display:block; margin-bottom:22px; }
  .section-topline h2 { font-size:26px; }
  .section-topline > a { display:inline-block; margin-top:12px; }
  .section-heading h2 { padding-bottom:17px; }
  .industry-section { padding-block:28px; }
  .chart-axis { margin-left:0; margin-right:0; padding-bottom:10px; }
  .industry-row summary { grid-template-columns:1fr 12px; gap:10px; padding:13px 0; }
  .industry-row summary::after { grid-column:2; grid-row:1; }
  .industry-label strong { font-size:14px; }
  .industry-label small { font-size:10px; }
  .timeline-track { grid-column:span 2; height:22px; }
  .timeline-bar { top:3px; }
  .industry-detail { padding-right:0; }
  .industry-detail ul { grid-template-columns:1fr; }
  .two-column,.work-grid,.expertise-layout,.philosophy-grid { grid-template-columns:1fr; }
  .card,.work-card { padding:25px; }
  .work-card { min-height:auto; }
  .work-card:first-child { grid-column:auto; grid-template-columns:1fr; padding:27px; gap:27px; }
  .work-card h3 { font-size:27px; }
  .work-card .work-meta { font-size:10px; }
  .architecture { padding:20px; }
  .work-footer { flex-direction:column; align-items:start; }
  .expertise-layout { gap:35px; }
  .expertise-list h3 { font-size:19px; }
  .philosophy-grid { gap:28px; }
  .philosophy-grid .number { padding-bottom:10px; }
  .recognition-strip { flex-direction:column; gap:20px; }
  .contact-band { padding-block:45px; }
  .footer-inner { flex-direction:column; align-items:start; }
  .page-hero { padding-block:40px; }
  .page-hero .lead { font-size:18px; }
  .career-role { grid-template-columns:1fr; gap:20px; padding-block:28px; }
  .role-meta .role-title { margin-top:9px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }
@media print {
  .site-header,.site-footer,.skip-link,.contact-band,.actions,.architecture { display:none!important; }
  html { scroll-behavior:auto; }
  body { font-size:11pt; }
  .container { width:100%; }
  .section,.page-hero,.hero { padding-block:20px; }
  .career-role,.card,.work-card { break-inside:avoid; }
  a { color:inherit; }
}
