/* Review 5191114896: shared semantic roles, retaining each family's composition. */
:where(.ls-button,.wa-button,.construction-button,.ps-button,.button){min-height:var(--ls-button-height);border-radius:var(--ls-card-radius);font-size:var(--ls-font-button)}
:where(.hand-note,.wa-hand,.construction-hand,.ps-hand,.ls-annotation){font-family:Caveat,cursive;font-weight:500;line-height:1.15;letter-spacing:0}
.ls-annotation{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:12px 0 20px;font-size:26px;color:inherit}
.ls-annotation svg{width:80px;height:44px;flex:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* Explanations are reading roles, irrespective of the local component's name. */
.workflow-page :is(.market-copy p,.symptom p,.handoff p),
:is(.market-copy p,.responsibility-card header p,.responsibility-card>p,.symptom p,.handoff p),
.lm-stages details{font-size:var(--ls-font-body-small);line-height:1.6}
.prototype-home .hero-promises li,.prototype-home .hero-promises strong{font-size:var(--ls-font-body-small)}
.prototype-home .hero-lead{font-size:var(--ls-font-body-large)}
.prototype-home .hero-image,.prototype-home .hero-foreground{inset:-24px;max-width:none;width:calc(100% + 48px);height:calc(100% + 48px);object-fit:cover;object-position:65% center}
.prototype-home .hero-message h1{width:auto;max-width:100%;font-size:var(--ls-font-page-h1)}
.prototype-home .hero-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px}
.prototype-home .hero-workflow{left:0;width:100%;max-width:489px;grid-template-columns:45% 42%;gap:13%;--workflow-scale:1}
.prototype-home .workflow-connectors{width:100%}
.prototype-home .connect-note{left:auto;right:0;top:4px;font-size:24px;width:130px}
.prototype-home .connect-note::after{left:-30px;top:46px;transform:rotate(25deg);width:66px;height:50px}
.prototype-home :is(.problem-layout,.what-layout){padding-block:var(--ls-section-space)}
.prototype-home .results-section{padding-block:var(--ls-section-space)}
.prototype-home .result-body dt{font-size:var(--ls-font-card-title);text-align:left}
.prototype-home .result-body dd{text-align:left}
.prototype-home .result-image{height:160px}
.prototype-home .home-header{grid-template-columns:auto 1fr auto}
.prototype-home .home-location{display:none}
.prototype-home .home-header nav{gap:20px}
@media(max-width:1180px){.prototype-home .hero-layout{gap:28px}.prototype-home .hero-message h1{font-size:48px}}
@media(max-width:900px){.prototype-home .hero-layout{display:block}.prototype-home .hero-message h1{font-size:var(--ls-font-display)}.prototype-home .hero-workflow{max-width:none}.prototype-home .connect-note{display:none}.prototype-home .home-header{display:flex}.prototype-home .hero-image{object-position:70% center}}
@media(max-width:700px){.ls-annotation{font-size:24px;justify-content:flex-start}.ls-annotation svg{width:64px}.prototype-home .hero-message h1{font-size:40px}.prototype-home .hero-system{margin-top:12px}}

.site-end .fine{font-size:var(--ls-font-body-small)}
@media(max-width:600px){
 .prototype-home .hero-system{height:600px}
 .prototype-home .workflow-stages,.prototype-home .workflow-gaps{grid-auto-rows:96px;gap:8px}
 .prototype-home .workflow-step,.prototype-home .workflow-gaps li{height:96px;padding:12px}
 .prototype-home .workflow-gaps{transform:translateY(104px)}
 .prototype-home .workflow-gaps li>span{display:none}
 .prototype-home .workflow-gaps p{margin:0;min-width:0}
 .prototype-home .workflow-connectors{height:512px}
}
@media(min-width:901px){
 .prototype-home .connect-note{right:70px;top:12px}
 .prototype-home .connect-note::after{left:-62px;top:46px;width:92px;height:110px;transform:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 92 110'%3E%3Cpath d='M84 5C85 50 48 65 12 101m0-17v17l17-5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
}
/* Mobile visual audit: reserve room for labels, never hide clipped text with page overflow. */
@media(max-width:960px){
 .wa-page .hero-hand{display:none}
 .wa-hero .hero-hand{display:none}
 .wa-hero{min-height:0}
 .wa-hero-layout{padding-bottom:32px}
 .wa-hero .hero-diagram{height:540px;margin-top:24px}
 .wa-hero .hero-controlled{bottom:0}
}
@media(max-width:600px){
 .construction-hero-system{height:760px}
 .construction-hero-workflow{top:30px;height:664px}
 .construction-hero-workflow>ol,.construction-hero-workflow>ul{grid-auto-rows:104px}
 .construction-hero-workflow li{height:104px;min-width:0}
 .construction-hero-workflow strong,.construction-hero-workflow small{white-space:normal;overflow-wrap:normal}
 .construction-hero-workflow>ul{transform:translateY(112px)}
 .construction-hero-connectors{top:0!important;height:664px!important}
 .construction-hero .hero-hand{display:none}
}
@font-face{font-family:Caveat;src:url('/assets/caveat.woff2') format('woff2');font-weight:400 700;font-display:swap}
.wa-container{width:min(calc(100% - 2 * var(--ls-page-gutter)),var(--ls-content-max))}
@media(max-width:600px){.wa-hero .hero-tool-list,.wa-hero .hero-problem-list{width:43%}.wa-hero .hero-tool-list article,.wa-hero .hero-problem-list article{width:100%}}

/* Explicit semantic roles: short explanations are still reading copy. */
.prototype-home :is(.hero-promises li,.hero-promises strong,.problem-cards p,.result-body>p),
.construction-page :is(.market-metric>p:not(.construction-kicker),.responsibility-card header p,.responsibility-card li),
.wa-page :is(.market-layout article p,.symptom-grid p,.compare-detail p){font-size:var(--ls-font-body-small);line-height:1.6}

.ls-related-reading{padding:var(--ls-section-space) var(--ls-page-gutter);background:var(--ls-color-off-white);color:var(--ls-color-graphite)}.ls-related-reading>div{max-width:var(--ls-content-max);margin:auto}.ls-related-reading p{font-size:12px;color:var(--ls-color-green-dark)}.ls-related-reading h2{font-size:var(--ls-font-section-h2);line-height:1.2;max-width:900px}.ls-related-reading nav{display:flex;flex-wrap:wrap;gap:24px}.ls-related-reading a{font:inherit;font-size:14px;color:inherit;min-height:44px;display:inline-flex;align-items:center}

.prototype-home .sector-strip p,.content-page .specialist-visual .visual-caption{font-size:var(--ls-font-body-small)}

/* Business explanations in comparison, example and closing promise lists. */
.construction-page :is(.example-economics li,.connected-comparison li,.engineering-links a>p),
.wa-page .wa-cta li{font-size:var(--ls-font-body-small);line-height:1.6}

/* One identity rule; external sources do not inherit GitHub branding. */
:root{--ls-github-accent:var(--ls-color-green);--ls-github-accent-light:#286516}
body a.github-identity{color:var(--ls-github-accent);text-decoration:underline;text-underline-offset:4px}
body :is(.light,.editorial-section,.journal-prose,.journal-content,.about-layout,.cs-band.light) a.github-identity{color:var(--ls-github-accent-light)}
body .business-footer{background:var(--ls-color-graphite);color:var(--ls-color-white);padding:40px 0;border-top:1px solid var(--ls-color-border-dark)}
body .business-footer .footer-top{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:64px;align-items:start;max-width:1320px;margin:auto;padding:0 32px}
body .business-footer p,body .business-footer a{font-size:var(--ls-font-body-small);line-height:1.6}
body .business-footer .brand strong{font-size:24px}body .business-footer .brand small{font-size:12px}
body .business-footer .eyebrow{margin:0 0 12px;color:#afbbb4}
body .business-footer nav{display:grid;grid-template-columns:repeat(2,max-content);gap:0 36px;margin:0}
body .business-footer nav a{display:flex;align-items:center;min-height:44px}
body .business-footer .footer-explore{justify-self:center}
body .business-footer .footer-contact{justify-self:end}
body .business-footer .footer-contact>a{display:flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:0;border:0}
body .business-footer .footer-contact>a svg{width:20px;height:20px;flex:none}
body .business-footer .footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:0;min-width:0}
body .business-footer .footer-contact .eyebrow{margin:0 0 12px}
body .business-footer a.footer-analyze{font-size:18px;font-weight:700;color:var(--ls-color-green)}
body .business-footer .footer-secondary{margin-top:24px;color:#afbbb4}
body .business-footer a{overflow-wrap:anywhere}body .business-footer a.github-identity{color:var(--ls-github-accent)}
.buyer-market{padding:64px 0;background:var(--ls-color-off-white);color:var(--ls-color-graphite)}
.buyer-market h2{font-size:var(--ls-font-section-h2);line-height:1.15;margin:12px 0 28px}
.buyer-market-grid{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:32px}.buyer-market-grid>article>strong{font-size:36px}.buyer-market p{font-size:16px;line-height:1.6}.buyer-market a{color:#286516}.buyer-market .buyer-source{font-size:14px;margin-top:24px}
.buyer-role-line{display:flex;gap:32px;border-top:1px solid var(--ls-color-border-light);margin-top:24px;padding-top:12px}.buyer-role-line p{flex:1}
.buyer-problem-links{display:flex;flex-wrap:wrap;gap:16px 28px;padding-top:28px;font-size:14px;text-decoration:underline;text-underline-offset:4px}
body .industry-recognition{font-size:14px;line-height:1.6;max-width:650px}
.pravoup-flow{display:grid;grid-template-columns:repeat(5,1fr);list-style:none;padding:0;gap:14px}.pravoup-flow li{border-top:2px solid #286516;padding:16px 0;font-size:14px}.pravoup-flow span{display:block;color:#59635f;margin-bottom:8px}
.pravoup-record{padding:24px;border:1px solid var(--ls-color-border-light)}.pravoup-record ul{display:flex;flex-wrap:wrap;gap:16px 30px;padding-left:20px}.pravoup-record li{font-size:14px}
/* Annotation stays in the skyline's right-side negative space, outside the subject. */
.prototype-home .closing-content{position:relative}.prototype-home .closing-cta{position:relative}
.prototype-home .tomorrow-note{position:absolute;right:3%;left:auto;top:24px;width:150px;font-size:24px;line-height:1.05;color:#fff;text-shadow:0 1px 5px #09100f}
.prototype-home .tomorrow-note::after{left:auto;right:0;top:52px;transform:rotate(-55deg);width:42px;height:64px}
@media(max-width:1100px){body .business-footer .footer-top{gap:28px;grid-template-columns:1fr 1fr}body .business-footer .footer-contact{grid-column:1 / -1;justify-self:start}.buyer-market-grid{grid-template-columns:1fr 1fr}.buyer-market-grid article:last-child{grid-column:1 / -1}}
@media(max-width:820px){.prototype-home .tomorrow-note{display:none}.buyer-market h2{font-size:32px}.pravoup-flow{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){body .business-footer .footer-top{grid-template-columns:1fr;padding:0 20px;gap:28px}.business-footer .footer-contact{grid-column:auto}body .business-footer .footer-explore{justify-self:start}.buyer-market{padding:48px 0}.buyer-market-grid{grid-template-columns:1fr;gap:20px}.buyer-role-line{display:block}.buyer-problem-links{display:grid;gap:14px}.pravoup-record{padding:18px}}
.enquiry-notice{padding:24px;border:1px solid var(--ls-color-border-dark);border-radius:var(--ls-radius);margin-bottom:28px}.enquiry-notice h2{font-size:24px;margin-top:0}.enquiry-notice p,.enquiry-notice summary{font-size:14px;line-height:1.6}.enquiry-notice details{margin:16px 0}.enquiry-notice a{text-decoration:underline;text-underline-offset:3px}.prototype-home .free-analysis-note{font-size:14px;margin:14px 0;color:#dbe3df}.privacy-copy{max-width:780px}

body .business-footer .brand{display:flex;flex-direction:column;align-items:flex-start;gap:5px}body .business-footer .brand small{display:block}

/* Client-readability refinement: retain detail, give each layer a clear reading role. */
.prototype-home .results-grid{gap:var(--ls-grid-gap,20px)}
.prototype-home .result-body{padding:24px}
.prototype-home .result-body h3{font-size:var(--ls-font-card-title);line-height:1.35;margin-bottom:12px}
.prototype-home .result-body>p{min-height:4.5em;margin-bottom:20px}
.prototype-home .result-body dl{display:block;border-top:1px solid var(--ls-color-border-light);padding-top:14px;margin-bottom:20px}
.prototype-home .result-body dl>div{text-align:left;display:block;margin-bottom:12px}
.prototype-home .result-body dt{font-size:var(--ls-font-body-small);line-height:1.5;color:var(--ls-color-graphite);font-weight:700}
.prototype-home .result-body dd{text-align:left;font-size:var(--ls-font-body-small);line-height:1.5;margin:2px 0 0}
.prototype-home .result-link{font-size:var(--ls-font-body-small)}
.prototype-home .results-header{gap:28px;margin-bottom:28px}
.industry-index-card>div{padding:28px}
.industry-index-card h3{margin-bottom:12px}
.industry-index-card p{line-height:1.65}
[data-work-filter] .cs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
[data-work-filter] .cs-card p{line-height:1.65;margin-bottom:20px}
.saas-closing{position:relative;overflow:hidden;isolation:isolate;background:var(--ls-color-graphite);color:white}
.saas-closing>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.saas-closing::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,16,15,.98),rgba(9,16,15,.9) 40%,rgba(9,16,15,.15));z-index:-1}
.saas-closing h2,.saas-closing p{max-width:620px}.saas-closing p{color:inherit}
@media(max-width:900px){.prototype-home .results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.prototype-home .results-grid,[data-work-filter] .cs-grid{grid-template-columns:1fr}.prototype-home .result-body>p{min-height:0}.prototype-home .result-body,.industry-index-card>div{padding:20px}.saas-closing::before{background:rgba(9,16,15,.85)}}

/* Equal-height card bodies anchor every Explore action to the same row baseline. */
.industry-index-card{display:flex;flex-direction:column}
.industry-index-card>img{flex-shrink:0}
.industry-index-card>div{display:flex;flex-direction:column;flex:1}
.industry-index-card ul{margin-bottom:24px}
.industry-index-card .button{margin-top:auto;min-height:72px;line-height:1.5}
