/* Beeston's shared illustration system. Artwork and labels occupy separate rows. */
.explain-figure{margin:0;min-width:0;width:100%;aspect-ratio:16/11;min-height:248px;display:grid;grid-template-rows:44px minmax(0,1fr);gap:12px;padding:20px;background:#efeee8;border:1px solid var(--line);color:var(--teal);overflow:hidden}
.explain-figure.diagram-with-labels{grid-template-rows:44px minmax(0,1fr) 40px}
.explain-figure .diagram-heading{margin:0;padding:0;text-align:left;color:var(--teal);font:12px/1.5 'Geist Mono',monospace;letter-spacing:-.025em;align-self:start;max-width:100%}
.diagram-canvas{min-height:0;min-width:0;display:grid;place-items:center}
.diagram-canvas>svg{display:block;width:100%;height:100%;stroke-width:1.35;stroke:var(--teal);stroke-linecap:square;stroke-linejoin:miter}
.diagram-detail{stroke:var(--teal);stroke-width:1.35;stroke-linecap:square;stroke-linejoin:miter}
.diagram-canvas svg :is(path,rect,circle,ellipse){vector-effect:non-scaling-stroke}
.art-panel{fill:var(--paper);stroke:#78968a;stroke-width:1.2}.art-boundary{fill:none;stroke:#78968a;stroke-width:1.2;stroke-dasharray:5 6}
.art-muted{stroke:#b1bdb6;stroke-width:2}.art-ring{stroke:#9aaea5;stroke-width:1.3}.art-dot{fill:var(--teal);stroke:none}.diagram-trace{stroke:#597c6d;stroke-width:1.25;fill:none}
.diagram-labels{display:grid;grid-template-columns:repeat(var(--label-count),minmax(0,1fr));gap:12px;align-items:start;color:var(--ink);font-size:12px;line-height:1.4;text-align:center;min-width:0}
.diagram-labels>span{min-width:0;text-wrap:balance}
.explain-figure.page-hero-diagram{align-self:center;padding:28px;max-width:640px;justify-self:end;aspect-ratio:16/11}
.explain-figure.reading-card-photo,.explain-figure.service-card-photo,.home-services .home-service-figure{aspect-ratio:16/11;height:auto;min-height:248px;padding:24px;margin-bottom:22px}
.home-services .home-service-figure{margin-bottom:0}
/* Model evaluation: parallel model structures and shared evidence review. */
.diagram-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;width:100%}
.diagram-heading>span{min-width:0}
.diagram-motion-toggle{flex-shrink:0;border:0;border-bottom:1px solid #a7b7b1;padding:8px 4px;background:transparent;color:var(--teal);font:12px/1.5 'Geist Mono',monospace;cursor:pointer;min-width:44px;min-height:44px}
.diagram-motion-toggle:hover{border-color:var(--teal)}
.model-network{fill:none;stroke:#78968a;stroke-width:1.2}
.model-neuron{fill:var(--paper);stroke:var(--teal);stroke-width:1.2}
.diagram-signal{fill:none;stroke:var(--teal);stroke-width:2;stroke-linecap:round;opacity:0}
.context-grid{display:grid;grid-template-columns:1fr 1fr;width:100%;height:100%;border:1px solid #b6c3b9;background:var(--paper)}
.context-grid>div{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:16px;font-size:13px;color:var(--ink)}
.context-grid>div:nth-child(odd){border-right:1px solid #ccd4cb}.context-grid>div:nth-child(-n+2){border-bottom:1px solid #ccd4cb}
.context-grid svg{width:40px;height:40px;flex-shrink:0}
.system-boundary{width:100%;height:100%;display:grid;grid-template-columns:1fr 1.3fr;grid-template-rows:18px minmax(0,1fr);gap:8px;border:1px dashed #a7b7b1;padding:10px;min-height:0}
.system-caption{grid-column:1/-1;font-size:12px;color:var(--teal)}.system-core,.system-layers>div{background:var(--paper);border:1px solid #b6c3b9;display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:12px}
.system-core{flex-direction:column;gap:6px;min-height:0}.system-core svg{width:42px;height:42px;flex-shrink:0}.system-layers{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;min-width:0;min-height:0}
.system-layers>div{gap:8px;padding:6px;min-height:0}.system-layers svg{width:24px;height:24px;flex-shrink:0}
.cost-components{width:100%;height:100%;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:8px;min-height:0}
.cost-components>div{display:flex;gap:14px;align-items:center;padding:6px 14px;border:1px solid #b6c3b9;background:var(--paper);color:var(--ink);font-size:13px;min-height:0}
.cost-components svg{width:26px;height:26px;flex-shrink:0}.cost-component-mark{margin-left:auto;width:20px;height:1px;background:#77988b}
.expertise-audience{font-size:17px;line-height:1.6;margin:22px 0 0;color:var(--muted);max-width:650px}
.service-fit{display:grid;grid-template-columns:1fr 1fr;gap:7vw;padding-top:32px;padding-bottom:32px;border-bottom:1px solid var(--line)}
.service-fit .eyebrow{margin-bottom:12px}.service-fit p:not(.eyebrow){font-size:16px;line-height:1.7;color:var(--muted);max-width:530px}
.service-questions{display:grid;grid-template-columns:1fr 1.6fr;gap:6vw;border-top:1px solid var(--line);padding-top:36px;padding-bottom:36px}
.service-questions h2{font-size:30px}.service-questions details{border-bottom:1px solid var(--line)}
.service-questions summary{display:flex;justify-content:space-between;gap:24px;padding:18px 0;list-style:none;font-size:17px}
.service-questions summary::-webkit-details-marker{display:none}.service-questions details p{color:var(--muted);font-size:15px;padding-bottom:20px;max-width:580px}
.team-contact{display:grid;grid-template-columns:180px minmax(0,610px);gap:52px;align-items:center;border-top:1px solid var(--line)}
.team-contact img{width:180px;height:180px;object-fit:cover;display:block}.team-contact h2{font-size:32px;margin:0 0 20px}
.team-contact p:not(.eyebrow){font-size:16px;line-height:1.8;color:var(--muted);margin-bottom:22px}.team-contact .text-link{font-size:14px}
.full-analysis{padding-top:35px;border-top:1px solid var(--line)}
/* Draw connections once on entry. Stop in a complete, readable state. */
@media(prefers-reduced-motion:no-preference){
 [data-reveal-diagram].diagram-enter .diagram-trace{animation:trace-evidence 1.6s ease-out both}
 [data-reveal-diagram].diagram-enter .diagram-detail{animation:emphasise-evidence 2s ease-out both}
 .pictograph.diagram-enter{animation:emphasise-evidence 1.4s ease-out both}
 @keyframes trace-evidence{from{stroke-dasharray:1;stroke-dashoffset:1}to{stroke-dasharray:1;stroke-dashoffset:0}}
 [data-live-diagram] .diagram-signal{animation:signal-travel 8s linear infinite;animation-play-state:paused;stroke-dasharray:.14 .86}
 [data-live-diagram] .signal-output{animation-delay:3.2s}
 [data-live-diagram] .signal-return{animation-delay:5.5s}
 [data-live-diagram] .signal-stage .art-panel{animation:stage-highlight 8s ease-in-out infinite;animation-delay:calc(var(--stage)*2s);animation-play-state:paused}
 [data-live-diagram] .model-option .art-panel{animation:stage-highlight 8s ease-in-out infinite;animation-delay:2s;animation-play-state:paused}
 [data-live-diagram] .model-neuron{animation:neuron-highlight 8s ease-in-out infinite;animation-delay:2s;animation-play-state:paused}
 [data-live-diagram].diagram-running :is(.diagram-signal,.signal-stage .art-panel,.model-option .art-panel,.model-neuron){animation-play-state:running}
 @keyframes signal-travel{0%{stroke-dashoffset:.14;opacity:0}5%{opacity:1}30%{stroke-dashoffset:-1;opacity:1}35%,100%{stroke-dashoffset:-1;opacity:0}}
 @keyframes stage-highlight{0%,34%,100%{fill:var(--paper);stroke:#9aad9f}10%,24%{fill:#dfeae3;stroke:var(--teal)}}
 @keyframes neuron-highlight{0%,34%,100%{fill:var(--paper)}10%,24%{fill:var(--teal)}}
 @keyframes emphasise-evidence{0%{opacity:.55}100%{opacity:1}}
}

/* Reading rhythm and consistent component sizing. */
.eyebrow,.hero-copy .eyebrow,.reading-card .eyebrow,.location-list .eyebrow,.output-document .eyebrow{font-size:12px;letter-spacing:.035em}
.diagram-heading{align-items:center;gap:10px}.diagram-heading>span{line-height:1.5}
.system-caption,.document-grid span,.document-conclusion>span,.roadmap-sheet span{font-size:12px}
.art-muted{stroke:#78968a}.diagram-canvas>svg,.diagram-detail{stroke-width:1.5}
.context-grid svg{width:38px;height:38px}
.home-service h3{font-size:clamp(17px,1.5vw,22px);letter-spacing:-.035em;line-height:1.3;white-space:nowrap}
.home-service p.service-outcome{font-size:16px;margin:14px 0 8px}.home-service p:not(.service-outcome){margin:0 0 20px}
.home-service>.text-link,.expertise-item>.text-link{min-height:44px;align-items:center;padding:4px 0}
.main-nav>a:last-child{border-bottom:1px solid var(--teal)}
.footer-main .text-link{min-height:36px;display:flex;align-items:center}.footer-main>nav{gap:4px}
.footer-bottom{font-size:12px}.legal-details{font-size:12px;line-height:1.7;max-width:850px}
.footer-bottom nav a,.footer-bottom>a{min-height:36px;display:inline-flex;align-items:center}
.article-layout{grid-template-columns:210px minmax(0,620px);gap:6vw;justify-content:start}
.article-layout .prose{font-size:17px;line-height:1.8;max-width:620px}
.article-layout .toc{font-size:13px}.reading-details .toc{position:sticky;top:118px}
.prose li{margin:8px 0}.editorial-meta{font-size:13px;gap:18px 26px}
.editorial-meta .text-link,.editorial-meta .text-button{font-size:13px;min-height:44px;display:inline-flex;align-items:center}
.contact-copy .contact-next{font-size:14px;line-height:1.7;margin-top:16px;max-width:390px}
.contact-section .contact-form :is(.form-key,.field-hint,.privacy-line,.privacy-line a,.review-note){font-size:12px}
.form-more summary{min-height:44px}.privacy-line{font-size:13px}.privacy-line a{display:inline-block;padding:4px 0}
.field select{appearance:none}
.connected{display:grid;grid-template-columns:1fr 1fr;column-gap:7vw;align-items:start}
.connected>.eyebrow{grid-column:1/-1}.connected>h2{grid-column:1;grid-row:2/4;font-size:34px;max-width:480px}
.connected>p:not(.eyebrow){grid-column:2;margin:0 0 18px}.connected>.text-link{grid-column:2;justify-self:start}
.not-found{min-height:0;padding-top:36px;padding-bottom:72px}
.capability-section{padding-top:32px;padding-bottom:44px}.home-process{padding-top:56px;padding-bottom:56px}
.page-hero .page-hero-copy>.eyebrow{max-width:100%}
.article-layout .toc a{padding:7px 0 7px 12px}.toc nav{gap:5px}
@media(min-width:761px) and (max-width:1100px){
 .home-services{grid-template-columns:1fr}.home-services .home-service{display:grid;grid-template-columns:280px 1fr;column-gap:32px}
 .home-services .home-service-figure{grid-row:1/5}.home-service h3{margin-top:20px;font-size:22px;white-space:normal}
 .reading-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-layout{grid-template-columns:180px minmax(0,1fr);gap:32px}
}
@media(max-width:1000px){
 .page-hero.hero-visual{grid-template-columns:1fr;gap:28px}.page-hero-copy{max-width:720px}
 .explain-figure.page-hero-diagram{max-width:560px;justify-self:center}.page-hero.about-band .page-hero-photo{width:100%}
}
@media(max-width:760px){
 .service-fit,.service-questions{grid-template-columns:1fr;gap:24px}.team-contact{grid-template-columns:130px 1fr;gap:26px}.team-contact img{width:130px;height:130px}
 .home-services{display:grid;grid-template-columns:1fr;gap:32px}.home-services .home-service{display:flex}
 .home-services .home-service-figure{height:220px;min-height:220px;aspect-ratio:auto;padding:16px 20px;grid-template-rows:38px minmax(0,1fr) 40px;gap:10px}
 .home-services .home-service h3{font-size:clamp(17px,4.5vw,25px);margin:18px 0 6px}
 .home-service p.service-outcome{margin:8px 0;font-size:15px}.home-service p:not(.service-outcome){font-size:15px;line-height:1.6;margin:0 0 10px}
 .home-services .home-service>.text-link{margin-top:0}
 .home-process{padding-top:40px;padding-bottom:40px}.process-heading{margin-bottom:24px}.process-steps{gap:18px}.process-steps article{padding-top:16px}
 .section{padding-top:48px;padding-bottom:48px}.capability-section{padding-top:28px;padding-bottom:36px}
 .article-layout{display:block}.article-layout .toc,.reading-details .toc{position:static}
 .toc nav{display:flex;flex-direction:row;gap:4px 18px}.toc .eyebrow{flex-basis:100%}.toc a{font-size:13px}
 .toc{margin-bottom:28px;padding-bottom:20px}.article-layout .prose{font-size:16px;max-width:100%}
 .page-hero.hero-visual{padding-top:28px;padding-bottom:30px}.page-hero.hero-visual:has(+.editorial-meta){gap:20px}
 .page-hero.hero-visual:has(+.editorial-meta) .page-hero-diagram{height:220px;min-height:220px;padding:16px 20px;aspect-ratio:auto}
 .connected{grid-template-columns:1fr;gap:14px}.connected>.eyebrow,.connected>h2,.connected>p:not(.eyebrow),.connected>.text-link{grid-column:1;grid-row:auto;margin:0}
 .footer-main .text-link,.footer-bottom nav a,.footer-bottom>a{min-height:44px}.footer-main>nav{gap:0}.footer-bottom nav{gap:2px 18px}
 .insights-section .reading-grid{grid-template-columns:1fr;gap:26px}
 .insights-section .reading-card:not(:first-child) .explain-figure{display:none}
 .insights-section .reading-card:not(:first-child)>p:not(.eyebrow){display:none}
 .insights-section .reading-card:not(:first-child){border-top:1px solid var(--line);padding-top:24px}
 .insights-section .reading-card h3{font-size:25px}.insights-section .reading-card>p:not(.eyebrow){margin-bottom:10px}
 .insights-section .reading-card .text-link{min-height:44px;align-items:center}
 .output-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-bottom:20px}
 .output-tabs button{font-size:14px;line-height:1.4;padding:12px 8px;border-left:0;border-bottom:2px solid var(--line);text-align:center}
 .output-tabs button[aria-selected=true]{border-bottom-color:var(--teal)}
 .output-document{padding:22px}.output-document h3{font-size:24px;margin-bottom:24px}
 .process-steps h3{font-size:20px;margin-bottom:8px}.process-steps p{font-size:14px}
 .eyebrow{margin-bottom:14px}.team-contact h2{font-size:29px}
}
@media(max-width:560px){
 .reading-grid{grid-template-columns:1fr}.team-contact{grid-template-columns:1fr;gap:24px}.team-contact img{width:140px;height:140px}
 .explain-figure,.explain-figure.page-hero-diagram,.explain-figure.reading-card-photo,.explain-figure.service-card-photo{padding:16px;min-height:240px}
 .diagram-labels{gap:6px;font-size:12px}.diagram-heading{font-size:12px}
 .system-boundary{padding:8px}.system-layers>div{padding:5px;gap:5px}.context-grid>div{padding:10px;gap:6px}.context-grid svg{width:30px;height:30px}
}
@media(max-width:360px){.context-grid>div{flex-direction:column;justify-content:center;font-size:12px}.home-services .home-service-figure{padding:12px;min-height:210px;height:210px}}
@media print{.explain-figure{break-inside:avoid;background:white}.team-contact img{display:none}.team-contact,.service-fit,.service-questions{display:block}.diagram-motion-toggle,.diagram-signal{display:none!important}[data-live-diagram] *{animation:none!important}.article-layout .prose{max-width:none}}
