:root {
  --paper:#f7f7f2; --surface:#ffffff; --ink:#242820; --muted:#60645c;
  --soft:#eeeee7; --line:#d6d8ce; --accent:#e8542a; --accent-ink:#b83b1a;
  --inverse:#242820; --inverse-ink:#f7f7ee; --inverse-muted:#cbcdc2;
  --edge:clamp(24px,5.55vw,100px); --content:1280px;
  color-scheme:light;
}
html[data-theme="dark"] {
  --paper:#1c201c; --surface:#282d27; --ink:#f2f1e7; --muted:#bfc3b7;
  --soft:#232822; --line:#43493e; --accent-ink:#ff9674;
  --inverse:#e9eadd; --inverse-ink:#242820; --inverse-muted:#575d50;
  color-scheme:dark;
}
* { box-sizing:border-box }
html { scroll-behavior:smooth; scroll-padding-top:32px; background:var(--paper) }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Helvetica Neue",Arial,sans-serif; font-size:18px; line-height:1.55; -webkit-font-smoothing:antialiased }
main { overflow:clip }
a { color:inherit; text-decoration:none }
button,input,textarea { font:inherit }
button { cursor:pointer }
img { display:block; max-width:100% }
h1,h2,h3,h4,p { margin:0 }
a,button,summary,input,textarea { outline-offset:6px }
:focus-visible { outline:2px solid var(--accent) }
[hidden] { display:none!important }
.skip-link { position:fixed; left:24px; top:-80px; z-index:100; padding:14px; background:var(--ink); color:var(--paper) }
.skip-link:focus { top:12px }
.section { position:relative; padding:96px max(var(--edge),calc((100vw - var(--content))/2)) }
.section h2 { max-width:1000px; font-size:clamp(38px,4vw,58px); font-weight:500; line-height:1.04; letter-spacing:-.055em; text-wrap:balance }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:42px }
.section-heading>div { max-width:860px }
.section-heading p { max-width:760px; margin-top:20px; color:var(--muted); font-size:19px; line-height:1.5 }
.section-heading>.text-link { flex-shrink:0 }
.arrow { display:inline-block; font-size:24px; line-height:1; font-weight:400; transition:transform .25s }
.text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; min-height:48px; padding:6px 0; border:0; background:none; color:inherit; font-size:17px; font-weight:500 }
.text-link .arrow,.text-link>span { color:var(--accent-ink) }
.text-link:hover .arrow { transform:translate(3px,-3px) }
.button-primary { display:inline-flex; min-height:58px; align-items:center; justify-content:space-between; gap:28px; padding:15px 24px; background:var(--accent); color:#161c15; font-size:18px; font-weight:500; clip-path:polygon(0 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%); transition:background .25s }
.button-primary:focus-visible { outline:0; box-shadow:inset 0 0 0 3px #161c15 }
.button-primary:hover { background:#fa6d43 }
.button-primary:hover .arrow { transform:translate(3px,-3px) }
.anchor-alias { position:absolute; top:0; left:0 }

/* A quiet header keeps the first claim dominant. */
.nav-shell { position:relative; z-index:20; display:flex; align-items:center; gap:28px; max-width:1480px; height:100px; margin:auto; padding:0 var(--edge) }
.brand { display:inline-flex; gap:12px; align-items:center; flex-shrink:0; font-size:23px; line-height:1.05; font-weight:500; letter-spacing:-.055em }
.brand-symbol { display:grid; place-items:center; width:43px; height:45px; background:#242820 }
.brand-symbol img { width:35px; height:35px }
.brand-partners { display:block; font-size:18px; font-weight:400; letter-spacing:-.03em }
.nav-shell>nav { display:flex; gap:25px; margin-left:auto; font-size:15px }
.nav-shell>nav a { padding:12px 0 }
.nav-shell a:hover { color:var(--accent-ink) }
.nav-tools { display:flex; align-items:center; gap:10px }
.nav-contact { display:flex; align-items:center; gap:14px; font-size:15px; white-space:nowrap }
.nav-contact .arrow { color:var(--accent-ink) }
.theme-toggle { width:44px; height:44px; display:grid; place-items:center; padding:0; border:0; background:none; color:var(--ink) }
.theme-toggle>span { width:18px; height:18px; border:1.5px solid currentColor; border-radius:50%; box-shadow:inset 7px 0 0 currentColor }
.nav-menu { position:relative }
.nav-menu summary { display:flex; flex-direction:column; justify-content:center; gap:6px; width:44px; height:44px; list-style:none; cursor:pointer }
.nav-menu summary::-webkit-details-marker { display:none }
.nav-menu summary span { height:1px; width:21px; margin:auto 0; background:var(--ink) }
.nav-menu summary span:first-child { margin-top:14px; margin-bottom:0 }
.nav-menu summary span:last-child { margin-top:0; margin-bottom:14px }
.nav-menu>div { position:absolute; top:56px; right:0; width:270px; padding:20px 26px; background:var(--surface); border:1px solid var(--line) }
.nav-menu>div a { display:block; padding:9px 0; font-size:17px }

/* One uninterrupted text column. Motion has its own reserved area. */
.hero { position:relative; isolation:isolate; max-width:1480px; margin:auto; padding:57px var(--edge) 70px; min-height:700px }
.hero-composition { position:relative; z-index:2; pointer-events:none }
.hero-composition a { pointer-events:auto }
.hero-eyebrow { color:var(--muted); font-size:16px; margin-bottom:30px }
.hero h1 { max-width:970px; font-size:clamp(58px,6.65vw,96px); font-weight:500; line-height:.98; letter-spacing:-.066em }
.hero-main,.hero-emphasis { display:block }
.hero-emphasis { color:var(--accent-ink) }
.hero-continuation { display:block; margin-top:26px; max-width:840px; font-size:clamp(24px,2.15vw,32px); line-height:1.25; font-weight:400; letter-spacing:-.025em }
.hero-description { max-width:645px; margin-top:34px; color:var(--ink); font-size:20px; line-height:1.5 }
.hero-actions { display:flex; gap:32px; align-items:center; margin-top:28px }
.hero-actions .text-link { text-decoration:underline; text-underline-offset:7px; text-decoration-color:var(--line) }
.hero-proof { display:flex; gap:48px; margin-top:43px }
.hero-proof p { display:flex; align-items:center; gap:13px }
.hero-proof strong { font-size:38px; line-height:1; font-weight:400; letter-spacing:-.06em }
.hero-proof span { max-width:135px; color:var(--muted); font-size:15px; line-height:1.3 }
.brand-field { position:absolute; right:calc(var(--edge) - 56px); top:78px; width:clamp(320px,36vw,520px); pointer-events:none }
.brand-field svg { display:block; width:100%; overflow:visible }
.brand-field[data-paused="true"] path { animation-play-state:paused }
.motion-toggle { pointer-events:auto; position:absolute; right:0; bottom:-8px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:transparent; color:var(--muted); font-size:18px }
.motion-toggle:hover { color:var(--accent-ink) }
.brand-field-layer { stroke-width:.8; vector-effect:non-scaling-stroke }
.field-arch { stroke:var(--ink); opacity:.27; stroke-dasharray:1; animation:arch-trace 22s cubic-bezier(.45,0,.25,1) infinite; animation-delay:inherit }
.field-plane { stroke:var(--accent); opacity:.8; stroke-dasharray:1; animation:plane-trace 22s cubic-bezier(.45,0,.25,1) infinite; animation-delay:inherit }
@keyframes arch-trace {
  0%,15% { stroke-dashoffset:0; opacity:.27 }
  36% { stroke-dashoffset:.28; opacity:.42 }
  52%,65% { stroke-dashoffset:0; opacity:.27 }
  84% { stroke-dashoffset:-.2; opacity:.18 }
  100% { stroke-dashoffset:0; opacity:.27 }
}
@keyframes plane-trace {
  0%,18% { stroke-dashoffset:0; transform:translate(0,0) }
  39% { stroke-dashoffset:.4; transform:translate(12px,-8px) }
  56%,69% { stroke-dashoffset:0; transform:translate(0,0) }
  86% { stroke-dashoffset:-.25; transform:translate(-4px,6px) }
  100% { stroke-dashoffset:0; transform:translate(0,0) }
}

/* One lead publication, three equally readable companion materials. */
.insights { background:var(--soft) }
.insight-stage { display:grid; grid-template-columns:1.12fr 1fr; gap:18px; align-items:stretch }
.insight-paper { position:relative; display:flex; flex-direction:column; overflow:hidden; background:var(--surface); isolation:isolate }
.insight-main { display:flex; flex-direction:column; flex:1; position:relative }
.insight-main:focus-visible { outline-offset:-5px }
.insight-featured { grid-row:span 3; min-height:650px; flex-direction:column; background:#252b24; color:#f8f6ea }
.insight-featured .insight-copy { margin-top:auto; padding:34px 36px 32px; position:relative; z-index:1 }
.insight-featured h3 { max-width:520px; font-size:clamp(34px,3.15vw,45px); line-height:1.06; letter-spacing:-.055em; font-weight:500; text-wrap:balance }
.insight-paper p { margin-top:19px; font-size:17px; line-height:1.5 }
.insight-featured p { color:#d2d4c8; max-width:470px }
.insight-read { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-top:27px; font-size:16px; font-weight:500 }
.insight-read>span { font-size:25px; transition:transform .25s }
.insight-paper:hover .insight-read>span { transform:translate(3px,-3px) }
.insight-support { grid-column:2; min-height:204px }
.insight-support .insight-main { padding:30px 28px 25px }
.insight-support .insight-copy { position:relative; z-index:1; flex:1; min-width:0 }
.insight-support h3 { max-width:435px; font-size:25px; line-height:1.15; letter-spacing:-.035em; font-weight:500 }
.insight-support p { color:var(--muted); font-size:16px; margin-top:11px }
.insight-support .insight-read { margin-top:15px; font-size:15px }
.publication-art { pointer-events:none; position:relative; height:205px; overflow:hidden; flex-shrink:0 }
.publication-art span { position:absolute; display:block; transition:transform .5s cubic-bezier(.2,.7,.2,1) }
[data-treatment="shift"] .publication-art span { width:78%; height:120px; left:-8%; top:50px; background:#46513e; transform:skewY(-15deg) }
[data-treatment="shift"] .publication-art span:nth-child(2) { left:50%; top:24px; width:60%; background:#59664f; transform:skewY(-15deg) translateY(22px) }
[data-treatment="shift"] .publication-art span:nth-child(3) { left:50%; top:30px; height:6px; width:60%; background:var(--accent); transform:skewY(-15deg) translateY(22px) }
[data-treatment="shift"] .insight-main:hover .publication-art span:nth-child(n+2),[data-treatment="shift"] .insight-main:focus-visible .publication-art span:nth-child(n+2) { transform:skewY(-15deg) translateY(0) }
.insight-support .publication-art { position:absolute; top:0; right:0; width:45%; height:21px }
[data-treatment="shift"] .insight-support .publication-art span { top:0; height:12px; width:70%; left:-5%; background:var(--line); transform:skewY(-15deg) }
[data-treatment="shift"] .insight-support .publication-art span:nth-child(2) { left:62%; top:-17px; width:50%; height:12px; background:var(--accent); transform:skewY(-15deg) translateY(8px) }
[data-treatment="shift"] .insight-support .publication-art span:nth-child(3) { display:none }
[data-treatment="shift"] .insight-support .insight-main:hover .publication-art span:nth-child(2),[data-treatment="shift"] .insight-support .insight-main:focus-visible .publication-art span:nth-child(2) { transform:skewY(-15deg) translateY(0) }
.insight-support:nth-child(3) .publication-art { width:32%; right:auto; left:28px }
.insight-support:nth-child(4) .publication-art { width:58% }
[data-treatment="contour"] .publication-art span:first-child { left:10%; right:14%; top:40px; bottom:20px; border-top:1px solid #92a088; border-left:1px solid #92a088; transform:skewY(-15deg) }
[data-treatment="contour"] .publication-art span:nth-child(2) { left:62%; width:24%; top:22px; height:4px; background:var(--accent); transform:skewY(-15deg) }
[data-treatment="contour"] .publication-art span:nth-child(3) { right:14%; top:22px; height:74px; border-right:1px solid #92a088; transform:translateY(18px) }
[data-treatment="contour"] .insight-main:hover .publication-art span:nth-child(2),[data-treatment="contour"] .insight-main:focus-visible .publication-art span:nth-child(2) { transform:skewY(-15deg) translateX(-30px) }
[data-treatment="contour"] .insight-support .publication-art { height:18px; width:42%; overflow:visible }
[data-treatment="contour"] .insight-support .publication-art span:first-child { left:0; right:18px; top:9px; bottom:-3px; border-color:var(--line); transform:none }
[data-treatment="contour"] .insight-support .publication-art span:nth-child(2) { left:auto; right:18px; width:35px; top:9px; height:3px; transform:none }
[data-treatment="contour"] .insight-support .publication-art span:nth-child(3) { display:none }
[data-treatment="contour"] .insight-support .insight-main:hover .publication-art span:nth-child(2),[data-treatment="contour"] .insight-support .insight-main:focus-visible .publication-art span:nth-child(2) { transform:translateX(-22px) }
.insight-application { display:grid; grid-template-columns:1fr auto; gap:3px 16px; margin:0 28px 24px; font-size:16px; line-height:1.4 }
.insight-application>span:first-child { grid-column:1/-1; font-size:14px; color:var(--muted) }
.insight-application>span:last-child { grid-column:2; grid-row:2; color:var(--accent-ink) }
.insight-application:hover { text-decoration:underline; text-underline-offset:4px }
.insight-featured .insight-application { margin:0 36px 30px; color:#f8f6ea }
.insight-featured .insight-application>span:first-child { color:#bdc6b6 }
.insight-featured .insight-application>span:last-child { color:#ff9674 }
.insight-more { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:18px }
.insight-extra { display:flex; flex-direction:column; padding:28px; background:var(--surface) }
.insight-extra h3 { font-size:25px; line-height:1.2; font-weight:500; letter-spacing:-.035em }
.insight-extra p { margin-top:18px; color:var(--muted); font-size:17px }
.insight-extra>span { margin-top:auto; padding-top:24px; font-size:25px; color:var(--accent-ink) }
.insight-extra:hover h3 { color:var(--accent-ink) }
.insight-expand { margin-top:28px }
.insight-disclosure summary { cursor:pointer; width:fit-content; list-style:none }
.insight-disclosure summary::-webkit-details-marker { display:none }
.insight-disclosure .when-open,.insight-disclosure[open] .when-closed { display:none }
.insight-disclosure[open] .when-open { display:inline }
.insight-expand>span:not(.disclosure-sign) { color:var(--ink) }
.insight-disclosure[open] .disclosure-sign { transform:rotate(45deg) }
.content-tabs { display:flex; gap:30px; margin:-12px 0 28px }
.content-tabs button { min-height:48px; padding:8px 0; border:0; border-bottom:2px solid transparent; background:none; font-size:20px; color:var(--muted) }
.content-tabs button[aria-selected="true"] { color:var(--ink); border-color:var(--accent) }
.case-selection { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px }
.case-story { display:flex; flex-direction:column; padding:30px; background:var(--surface) }
.case-topic { color:var(--accent-ink); font-size:16px; margin-bottom:28px }
.case-story h3 { font-size:31px; line-height:1.12; letter-spacing:-.04em; font-weight:500 }
.case-story h3 a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px }
.case-description { color:var(--muted); font-size:18px; line-height:1.5; margin:24px 0 20px }
.case-story>.text-link { margin-top:auto }
.case-service { display:grid; grid-template-columns:1fr auto; gap:6px 14px; margin-top:27px; font-size:17px; line-height:1.4 }
.case-service>span:first-child { grid-column:1/-1; font-size:14px; color:var(--muted) }
.case-service>span:last-child { grid-column:2; grid-row:2; color:var(--accent-ink) }
.case-contact { margin-top:26px }
.comparison-header,.comparison-intro { padding:20px max(var(--edge),calc((100vw - var(--content))/2)) }
.comparison-header { display:flex; justify-content:space-between }
.comparison-intro { padding-bottom:40px }
.comparison-intro h1 { font-size:clamp(36px,4vw,58px); line-height:1.05; letter-spacing:-.05em; font-weight:500 }
.comparison-intro p { margin-top:20px; max-width:780px; color:var(--muted) }
.comparison-controls { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px }
.comparison-controls button { border:1px solid var(--line); padding:12px 20px; background:var(--surface); color:var(--ink); font-size:17px; min-height:48px }
.comparison-controls button[aria-pressed="true"] { background:var(--ink); color:var(--paper); border-color:var(--ink) }
.design-comparison .section { padding-top:50px }

/* Product tiles share one visual language, with deliberate scale differences. */
.practice-run { display:flex; flex-wrap:wrap; gap:5px 19px; margin:-12px 0 36px; max-width:1160px; color:var(--muted); font-size:14px; line-height:1.9 }
.practice-run a { text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--line) }
.practice-run a:hover { color:var(--accent-ink) }
.service-collection { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:18px }
.service-card { grid-column:span 2; position:relative; display:flex; flex-direction:column; padding:30px; background:var(--soft); min-height:286px; transition:transform .3s,background .3s }
.service-main { display:flex; flex:1; flex-direction:column }
.service-case { display:grid; grid-template-columns:1fr auto; column-gap:15px; margin-top:24px; font-size:16px; line-height:1.4 }
.service-case>span:first-child { grid-column:1/-1; color:var(--muted); font-size:14px; margin-bottom:4px }
.service-case>span:last-child { grid-column:2; grid-row:2 }
.service-case:hover { text-decoration:underline; text-underline-offset:4px }
.service-flagship .service-case>span:first-child { color:var(--inverse-muted) }
.service-card:hover { background:var(--surface); transform:translateY(-4px) }
.service-card h3 { font-size:27px; line-height:1.12; font-weight:500; letter-spacing:-.035em; text-wrap:balance }
.service-card p { color:var(--muted); font-size:17px; line-height:1.5; margin:21px 0 32px }
.service-open { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:auto; font-size:16px }
.service-open .arrow { color:var(--accent-ink) }
.service-flagship,.service-diagnostic { grid-column:span 3; min-height:338px; padding:34px }
.service-flagship,.service-flagship:hover { background:var(--inverse); color:var(--inverse-ink) }
.service-flagship p { color:var(--inverse-muted) }
.service-flagship h3,.service-diagnostic h3 { font-size:39px; line-height:1.06; max-width:500px; letter-spacing:-.045em }
.service-format { display:block; font-size:24px; line-height:1.3; margin-top:6px; font-weight:400; letter-spacing:-.02em }
.service-flagship .arrow { color:var(--accent) }
.service-diagnostic,.service-diagnostic:hover { background:#e8542a; color:#161c15 }
.service-diagnostic p,.service-diagnostic .arrow { color:#161c15 }
.service-diagnostic :focus-visible,.reviews :focus-visible { outline-color:#161c15 }
.service-focus { background:var(--surface) }
.service-focus h3 { color:var(--accent-ink) }
.service-card:nth-last-child(-n+2) { grid-column:span 3; min-height:235px }
.service-card:nth-child(4) h3 { font-size:24px }

/* Quiet supporting sections, not another table or card wall. */
.approach { padding-top:52px; padding-bottom:85px }
.approach-path { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:36px; margin-top:52px }
.approach-path:before { content:""; position:absolute; top:5px; left:0; right:0; height:1px; background:var(--line) }
.approach-path article { position:relative; padding-top:33px }
.path-joint { position:absolute; top:0; left:0; width:11px; height:11px; background:var(--accent); transform:skewY(-16deg) }
.approach-path h3 { font-size:26px; line-height:1.15; letter-spacing:-.035em; font-weight:500 }
.approach-path p { margin-top:17px; color:var(--muted); font-size:17px; line-height:1.5 }
.industries { background:var(--soft) }
.industry-field { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:45px 85px; margin-top:52px }
.industry-field article { max-width:555px }
.industry-field h3 { font-size:29px; font-weight:500; letter-spacing:-.04em; line-height:1.15; max-width:490px }
.industry-field p { margin-top:16px; color:var(--muted); font-size:18px; line-height:1.55 }
.reviews { background:#e8542a; color:#161c15; padding-top:72px; padding-bottom:62px }
.reviews h2 { font-size:35px; letter-spacing:-.04em }
.quote-stage { margin-top:44px }
.quote-stack { display:grid }
.quote-stack blockquote { grid-area:1/1; visibility:hidden; opacity:0; margin:0; transform:translateY(10px); transition:opacity .45s,transform .45s; pointer-events:none }
.quote-stack blockquote.active { visibility:visible; opacity:1; transform:none; pointer-events:auto }
.quote-stack blockquote>p { max-width:1120px; font-size:clamp(34px,3.9vw,56px); line-height:1.12; font-weight:400; letter-spacing:-.045em; text-wrap:balance }
.quote-stack footer { display:flex; flex-direction:column; gap:6px; margin-top:34px; font-size:17px }
.quote-stack footer b { font-weight:500 }
.quote-stack footer span { color:#161c15 }
.quote-controls { display:flex; align-items:center; gap:10px; margin-top:34px }
.quote-controls>button { height:46px; min-width:46px; background:none; border:1px solid #9f3b1e; color:inherit; font-size:22px }
.quote-controls>button:hover { background:#f16840 }
.quote-controls .quote-pause { margin-left:auto; border:0; font-size:15px; padding:0 10px }
.quote-dots { display:flex; margin-left:15px }
.quote-dots button { width:44px; height:44px; padding:0; border:0; background:none; position:relative }
.quote-dots button:after { content:""; position:absolute; width:6px; height:6px; border-radius:50%; background:#994222; top:19px; left:19px }
.quote-dots button[aria-pressed="true"]:after { background:#22271e; width:8px; height:8px; top:18px; left:18px }
.faq { padding-top:80px; padding-bottom:82px }
.faq-list { margin-top:34px; max-width:1120px }
.faq-list details { border-bottom:1px solid var(--line) }
.faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:26px; padding:22px 0; font-size:23px; line-height:1.3; letter-spacing:-.025em; cursor:pointer; list-style:none }
.faq-list summary::-webkit-details-marker { display:none }
.faq-list summary>span { flex-shrink:0; color:var(--accent-ink); font-size:30px; line-height:1; transition:transform .2s }
.faq-list details[open] summary>span { transform:rotate(45deg) }
.faq-list details>p { max-width:860px; padding:0 40px 25px 0; color:var(--muted); font-size:18px }

/* Equal partners: aligned portraits, names and unedited biographies. */
.founders { padding-top:45px }
.founder-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px; align-items:start }
.founder-profile { min-width:0 }
.founder-photo { width:100%; aspect-ratio:1.25; overflow:hidden; background:var(--soft); clip-path:polygon(0 0,84% 0,100% 12%,100% 88%,72% 100%,0 100%) }
.founder-profile:nth-child(2) .founder-photo { clip-path:polygon(16% 0,100% 0,100% 100%,28% 100%,0 88%,0 12%) }
.founder-photo img { width:100%; height:100%; object-fit:cover; object-position:center top }
.founder-name { padding:28px 0 23px }
.founder-role { font-size:16px; color:var(--muted); margin-bottom:7px }
.founder-name h3 { font-size:41px; font-weight:500; line-height:1.12; letter-spacing:-.05em }
.founder-bio p { font-size:18px; line-height:1.55; color:var(--muted); margin-bottom:18px }
.founder-select { display:none }
.clients { padding-top:62px; background:var(--soft) }
.client-logos { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:center; gap:34px 48px; margin-top:56px }
.client-logos img { width:100%; max-width:170px; height:72px; object-fit:contain; margin:auto; filter:brightness(0); opacity:.8 }
html[data-theme="dark"] .client-logos img { filter:brightness(0) invert(1); opacity:.86 }
.press-story { display:grid; grid-template-columns:260px minmax(0,1fr); gap:58px; padding:42px; background:var(--soft); transition:background .3s }
.press-story:hover { background:var(--surface) }
.press-source { display:flex; flex-direction:column; gap:16px; font-size:18px; color:var(--accent-ink) }
.press-source time { color:var(--muted); font-size:16px }
.press-story h3 { max-width:760px; font-size:34px; line-height:1.15; letter-spacing:-.04em; font-weight:500 }
.press-story p { margin-top:20px; max-width:780px; color:var(--muted); font-size:18px }
.press-story .text-link { margin-top:22px }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:100px; background:#252b24; color:#f7f6eb }
.contact-copy h2 { font-size:clamp(50px,5.6vw,80px); line-height:.98; letter-spacing:-.055em }
.contact-copy>p { max-width:455px; margin-top:27px; color:#c6cabd; font-size:20px }
.contact-copy>h3 { margin:45px 0 12px; font-size:18px; font-weight:400; color:#c6cabd }
.contact-copy>a { display:block; width:fit-content; font-size:26px; letter-spacing:-.025em; margin:8px 0 }
.contact-copy>a:hover { color:#ff9873 }
.contact-copy .contact-response { font-size:17px; max-width:380px; margin-top:25px }
.contact-form>h3 { font-size:27px; letter-spacing:-.035em; font-weight:500; margin-bottom:24px }
.contact-form form { display:grid; gap:22px }
.contact-form fieldset { display:grid; gap:22px; padding:0; border:0; margin:0; min-width:0 }
.form-preview-note { font-size:15px; color:#c6cabd; margin-bottom:4px }
.contact-form label { display:block; font-size:16px; color:#d0d2c7 }
.contact-form input:not([type="checkbox"]),.contact-form textarea { display:block; width:100%; margin-top:8px; padding:9px 0 13px; border:0; border-bottom:1px solid #73796b; border-radius:0; background:transparent; color:#fffdef; font-size:18px }
.contact-form textarea { min-height:76px; resize:vertical }
.contact-form input::placeholder,.contact-form textarea::placeholder { color:#9fa696 }
.contact-form .check { display:flex; align-items:start; gap:12px; font-size:14px; line-height:1.5 }
.check input { width:19px; height:19px; flex-shrink:0; margin:2px 0 0; accent-color:#e8542a }
.check a { text-decoration:underline; text-underline-offset:3px }
.contact-form button { border:0; background:#e8542a; color:#161c15; display:flex; justify-content:space-between; align-items:center; padding:15px 22px; min-height:58px; font-size:18px }
.contact-form button:focus-visible { outline-color:#fffdef }
.contact-form button:hover { background:#fb7147 }
.form-status { color:#e2e5d8; font-size:16px; line-height:1.5 }
.form-status a { text-decoration:underline }
.footer { padding:42px max(var(--edge),calc((100vw - var(--content))/2)) 28px; background:var(--paper) }
.footer-top { display:flex; align-items:start; justify-content:space-between; gap:42px }
.footer-top nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:14px 27px; max-width:850px; font-size:15px }
.footer-bottom { display:flex; flex-wrap:wrap; gap:12px 25px; margin-top:38px; padding-top:23px; border-top:1px solid var(--line); color:var(--muted); font-size:13px }
.footer-bottom p { flex-basis:100% }
.footer a:hover { color:var(--accent-ink) }

@media(min-width:1700px) {
  .hero { min-height:760px; padding-top:70px }
  .brand-field { width:520px; top:110px }
}
@media(max-width:1150px) {
  .nav-contact { display:none }
  .hero h1 { font-size:clamp(58px,7.2vw,83px); max-width:800px }
  .brand-field { right:0; top:110px; width:350px; opacity:.6 }
  .hero-description { max-width:610px }
  .section { padding-top:76px; padding-bottom:76px }
  .insight-stage { grid-template-columns:1fr 1fr }
  .insight-featured .insight-copy { padding:28px }
  .insight-featured h3 { font-size:37px }
  .insight-support .insight-main { padding:28px 23px 23px }
  .insight-support h3 { font-size:23px }
  .case-story { padding:25px }
  .case-story h3 { font-size:28px }
  .service-card { padding:26px }
  .service-card h3 { font-size:24px }
  .service-flagship h3,.service-diagnostic h3 { font-size:33px }
  .approach-path { gap:24px }
  .approach-path h3 { font-size:23px }
  .founder-pair { gap:38px }
  .founder-name h3 { font-size:35px }
  .industry-field { column-gap:50px }
  .contact { gap:60px }
}
@media(max-width:850px) {
  .nav-shell>nav { display:none }
  .nav-tools { margin-left:auto }
  .nav-contact { display:flex }
  .hero { padding-top:45px; min-height:0 }
  .hero h1 { font-size:clamp(50px,8vw,68px); max-width:100% }
  .hero-continuation { max-width:650px; font-size:26px }
  .brand-field { width:220px; top:30px; right:-60px; opacity:.22; z-index:-1 }
  .brand-field path { animation:none }
  .motion-toggle { display:none }
  .hero-description { max-width:600px }
  .section-heading { align-items:start; flex-direction:column; gap:16px }
  .section-heading>.text-link { align-self:flex-start }
  .insight-stage { grid-template-columns:1fr }
  .insight-featured { grid-row:auto; min-height:560px }
  .insight-featured .publication-art { height:180px }
  .insight-featured h3 { max-width:600px; font-size:42px }
  .insight-support { grid-column:auto; min-height:190px }
  .insight-support h3 { max-width:560px; font-size:26px }
  .case-selection { grid-template-columns:1fr }
  .insight-more { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .service-collection { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .service-card,.service-card:nth-last-child(-n+2) { grid-column:span 1 }
  .service-flagship,.service-diagnostic { grid-column:span 2; min-height:290px }
  .approach-path { grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:32px }
  .approach-path:before { display:none }
  .approach-path article { border-top:1px solid var(--line) }
  .path-joint { top:-6px }
  .industry-field { gap:38px }
  .industry-field h3 { font-size:25px }
  .founder-pair { gap:28px }
  .founder-name h3 { font-size:29px }
  .founder-bio p { font-size:17px }
  .client-logos { grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px }
  .press-story { grid-template-columns:1fr; gap:25px; padding:30px }
  .press-source { flex-direction:row; flex-wrap:wrap; justify-content:space-between }
  .contact { grid-template-columns:1fr; gap:50px }
  .contact-copy>p { max-width:600px }
  .contact-copy h2 br { display:none }
  .footer-top { flex-direction:column }
  .footer-top nav { justify-content:flex-start }
}
@media(max-width:560px) {
  body { font-size:17px }
  .nav-shell { height:86px; gap:12px }
  .nav-contact { display:none }
  .brand { font-size:21px }
  .brand-partners { font-size:16px }
  .hero { padding-top:34px; padding-bottom:50px }
  .hero-eyebrow { max-width:260px; font-size:14px; margin-bottom:25px }
  .hero h1 { font-size:clamp(37px,9.15vw,52px); letter-spacing:-.057em; line-height:1.03 }
  .hero-continuation { font-size:23px; line-height:1.3; margin-top:23px; letter-spacing:-.025em }
  .hero-description { font-size:18px; margin-top:26px }
  .brand-field { width:150px; top:10px; right:-45px; opacity:.18 }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:10px; margin-top:25px }
  .hero-proof { gap:27px; margin-top:34px }
  .hero-proof p { display:block }
  .hero-proof strong { display:block; margin-bottom:8px; font-size:36px }
  .hero-proof span { display:block; font-size:14px; max-width:140px }
  .section { padding-top:58px; padding-bottom:58px }
  .section h2 { font-size:39px; max-width:360px }
  .section-heading { margin-bottom:28px }
  .section-heading p { font-size:18px; margin-top:18px }
  .insight-featured { min-height:550px }
  .insight-featured .publication-art { height:160px }
  .insight-featured .insight-copy { padding:26px 24px }
  .insight-featured h3 { font-size:35px }
  .insight-featured p { font-size:17px }
  .insight-support .insight-main { padding:29px 24px 25px }
  .insight-application,.insight-featured .insight-application { margin:0 24px 25px }
  .insight-support h3 { font-size:25px }
  .insight-more { grid-template-columns:1fr }
  .insight-extra { padding:25px }
  .service-collection { grid-template-columns:1fr }
  .service-card,.service-flagship,.service-diagnostic,.service-card:nth-last-child(-n+2) { grid-column:auto; min-height:245px; padding:27px }
  .service-flagship,.service-diagnostic { min-height:320px }
  .service-flagship h3,.service-diagnostic h3 { font-size:33px }
  .service-format { font-size:23px }
  .practice-run { font-size:14px; gap:5px 14px }
  .approach-path { grid-template-columns:1fr; margin-top:38px }
  .approach-path h3 { font-size:27px }
  .approach-path p { font-size:18px; max-width:440px }
  .industry-field { grid-template-columns:1fr; gap:36px; margin-top:36px }
  .industry-field h3 { font-size:28px }
  .quote-stack blockquote>p { font-size:34px }
  .reviews h2 { font-size:31px }
  .quote-stage { margin-top:32px }
  .quote-controls { gap:6px }
  .quote-dots { margin-left:2px }
  .quote-controls { flex-wrap:wrap }
  .quote-dots button { width:44px }
  .quote-controls .quote-pause { padding:0 4px }
  .faq-list summary { font-size:21px; padding:21px 0 }
  .faq-list details>p { padding-right:0; font-size:17px }
  .founder-pair { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; align-items:stretch }
  .founder-profile { display:contents }
  .founder-photo { grid-row:1; aspect-ratio:.85 }
  .founder-profile:first-child .founder-photo,.founder-profile:first-child .founder-name,.founder-profile:first-child .founder-select { grid-column:1 }
  .founder-profile:nth-child(2) .founder-photo,.founder-profile:nth-child(2) .founder-name,.founder-profile:nth-child(2) .founder-select { grid-column:2 }
  .founder-name { grid-row:2; padding:18px 0 12px }
  .founder-name h3 { font-size:26px; line-height:1.12 }
  .founder-select { grid-row:3; display:block; background:none; color:var(--muted); padding:10px 0; min-height:48px; border:0; border-bottom:2px solid transparent; text-align:left; font-size:16px }
  .founder-select[aria-expanded="true"] { border-bottom-color:var(--accent); color:var(--ink) }
  .founder-bio { display:none; grid-row:4; grid-column:1/-1; margin-top:25px }
  .founder-bio[data-active="true"] { display:block }
  .founder-bio p { font-size:18px }
  .client-logos { grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px 20px; margin-top:35px }
  .client-logos img { height:55px }
  .press-story { padding:26px }
  .press-story h3 { font-size:30px }
  .press-source { font-size:17px; gap:10px }
  .contact-copy h2 { font-size:54px; max-width:360px }
  .contact-copy h2 br { display:initial }
  .contact-copy>a { font-size:25px }
  .footer { padding-top:32px }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
  .motion-toggle { display:none }
  *,*:before,*:after { animation:none!important; transition:none!important }
}

/* Colour, not decorative arrows, identifies interactive content. */
.insight-main h3,.service-main h3,.press-story h3,.text-link,.insight-application,.service-case,.case-service { transition:color .2s ease }
.insight-main:hover h3,.insight-main:focus-visible h3,.service-main:hover h3,.service-main:focus-visible h3,.press-story:hover h3,.press-story:focus-visible h3,.text-link:hover,.text-link:focus-visible,.case-story h3 a:hover,.case-story h3 a:focus-visible,.insight-application:hover,.insight-application:focus-visible,.service-case:hover,.service-case:focus-visible,.case-service:hover,.case-service:focus-visible { color:var(--accent-ink) }
.insight-featured .insight-main:hover h3,.insight-featured .insight-main:focus-visible h3,.insight-featured .insight-application:hover,.insight-featured .insight-application:focus-visible { color:#ff9674 }
.service-flagship .service-main:hover h3,.service-flagship .service-main:focus-visible h3,.service-flagship .service-case:hover,.service-flagship .service-case:focus-visible { color:#ff9674 }
html[data-theme="dark"] .service-flagship .service-main:hover h3,html[data-theme="dark"] .service-flagship .service-main:focus-visible h3,html[data-theme="dark"] .service-flagship .service-case:hover,html[data-theme="dark"] .service-flagship .service-case:focus-visible { color:#b83b1a }
.service-diagnostic .service-main:hover h3,.service-diagnostic .service-main:focus-visible h3 { color:#161c15 }
.service-diagnostic:has(.service-main:hover),.service-diagnostic:has(.service-main:focus-visible) { background:#fa6d43 }
.service-card:hover { transform:none }
.insight-application,.service-case,.case-service { display:block }
.insight-application>span:first-child,.service-case>span:first-child,.case-service>span:first-child { display:block; margin-bottom:4px }
.faq-list summary>span,.insight-expand .disclosure-sign { font-size:0; transform:none!important }
.faq-list summary>span:after,.insight-expand .disclosure-sign:after { content:"+"; font-size:28px }
.faq-list details[open] summary>span:after,.insight-disclosure[open] .disclosure-sign:after { content:"−" }
