/* The blueprint becomes an editorial system. The approved hero is untouched. */
:root{--reading:72ch;--ease-editorial:cubic-bezier(.2,.75,.25,1)}
.footer-signoff{padding-top:15px;max-width:34em}
.footer-top .footer-signoff h2{font-size:clamp(24px,3.3vw,48px);line-height:1.5;max-width:12em;margin-top:0;text-wrap:wrap}
.footer-signoff h2>span{display:block;white-space:nowrap}
.inner-page .site-brand{font-size:25px}
.breadcrumbs{max-width:1700px;margin:auto;padding:112px var(--gutter) 0;font-size:11px;line-height:1.8;color:var(--muted)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:7px 12px;list-style:none;padding:0;margin:0}
/* Keep a long current-page title with its separator and align wrapped lines. */
.breadcrumbs li{min-width:0;max-width:100%}
.breadcrumbs li:last-child{flex:1 1 12ch;text-wrap:balance}
.breadcrumbs li+li{position:relative;padding-inline-start:18px}
.breadcrumbs li+li::before{content:'/';position:absolute;inset-inline-start:0;top:0;color:#92928b}
.breadcrumbs a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.breadcrumbs [aria-current]{color:var(--ink)}
.inner-page .page-intro{padding-top:32px;padding-bottom:72px}
.inner-page .page-status{font:11px/1.6 var(--mono);letter-spacing:.045em;margin-bottom:20px}
.inner-page .page-title{font-size:clamp(54px,10vw,160px);font-weight:900;line-height:.94;margin:0 0 48px;letter-spacing:-.07em;overflow-wrap:normal;word-break:normal}
.inner-page .page-intro>.split-section{grid-template-columns:1.1fr 1fr;gap:7vw;padding:40px 0 0}
.inner-page .page-intro h1.statement{font-size:clamp(29px,3.5vw,52px);line-height:1.65;letter-spacing:-.055em;text-wrap:pretty}
.inner-page .page-intro .body-copy{font-size:16px;line-height:2.1;align-self:center;max-width:40em}
.inner-page .page-content{padding-bottom:88px}
.inner-page .page-content.split-section{column-gap:7vw}
.inner-page .section-label{letter-spacing:.07em}
.page-toc{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:28px 0 46px;display:grid;grid-template-columns:minmax(120px,.55fr) 2fr;gap:20px}
.page-toc>p{font-size:12px;font-weight:700;line-height:1.7}
.page-toc ol,.page-toc ul{margin:0;padding-left:1.3em;display:flex;flex-wrap:wrap;gap:12px 32px;font-size:12px}
.page-toc a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line)}
.page-toc a:hover{color:var(--blue);text-decoration-color:currentColor}
.service-detail{--service-accent:var(--blue)}
.service-diagram{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:0;margin:32px 0 48px;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.service-diagram ol{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;padding:0}
.service-diagram li{position:relative;padding:36px 28px 32px 0;min-width:0}
.service-diagram li+li{border-left:1px solid var(--line);padding-left:28px}
.service-diagram li::before{content:'';position:absolute;top:-4px;left:0;width:7px;height:7px;background:var(--service-accent)}
.service-diagram li>span{font:11px var(--mono);color:var(--service-accent)}
.service-diagram h3{font-size:clamp(20px,2.1vw,30px);font-weight:600;margin:26px 0 16px;line-height:1.6}
.service-diagram p{font-size:14px;line-height:2;max-width:34em}
.service-route{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:24px 0;min-height:76px}
.service-route>span:first-child{font:11px var(--mono);color:var(--muted);min-width:70px}
.service-route strong{font-size:clamp(17px,1.65vw,24px);font-weight:600;flex:1;line-height:1.6}
.service-route>span:last-child{font-size:24px;transition:transform .3s var(--ease-editorial)}
.service-route:hover>span:last-child{transform:translate(4px,-4px)}
.scope-note{font-size:13px;line-height:2;color:var(--muted);border-left:2px solid var(--blue);padding-left:18px;margin-top:30px;max-width:70ch}
.related-pages{border-top:1px solid var(--ink);margin:70px 0 0;padding:30px 0 0}
.related-pages h2{font-size:20px;line-height:1.6;margin:0 0 20px}
.related-pages ul{list-style:none;padding:0;margin:0}
.related-pages li{border-bottom:1px solid var(--line)}
.related-pages a{display:block;padding:18px 30px 18px 0;font-size:15px;position:relative}
.related-pages a strong{display:block;font-weight:600}
.related-pages a span:not([aria-hidden]){display:block;font-size:13px;color:var(--muted);margin-top:5px}
.related-pages a>[aria-hidden]{display:none}
.related-pages a::after{content:'↗';position:absolute;right:0;top:18px}
.related-pages a:hover{color:var(--blue)}
.sitemap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:60px 7vw}
.sitemap-group{border-top:1px solid var(--ink);padding-top:22px}
.sitemap-group h2{font-size:22px;margin-bottom:24px}
.sitemap-group ul{list-style:none;padding:0;margin:0}
.sitemap-group li{border-bottom:1px solid var(--line)}
.sitemap-group a{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:14px 0;font-size:15px}
.sitemap-group a:hover{color:var(--blue)}
.faq-list .faq-item summary{font-size:16px;line-height:1.8;font-weight:600;margin-left:0;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:44px}
.faq-list .faq-item summary::-webkit-details-marker{display:none}
.faq-list .faq-item summary>span{font-weight:400;flex-shrink:0;transition:transform .25s var(--ease-editorial)}
.faq-list .faq-item p{font-size:15px;margin-top:18px;padding-right:40px}
.faq-list .faq-item[open]{padding-bottom:30px}
.faq-list a,.article-body p a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.article-item:has(>span.article-meta){grid-template-columns:72px minmax(0,1fr) 30px}
.article-item:has(>time.article-meta){grid-template-columns:130px minmax(0,1fr)}
.article-item>.article-meta{margin:0;font-variant-numeric:tabular-nums}
.article-body p{max-width:var(--reading)}
.article-body h2{scroll-margin-top:110px}
.inner-page .article-body .page-toc{display:block}
.inner-page .article-body .page-toc ol{display:block;margin-top:18px;line-height:2.1}
.inner-page .article-body .page-toc li{font-size:14px;margin:8px 0}
.inner-page .next-section{position:relative;overflow:hidden}
.inner-page .next-section .section-label{color:#c2c2ba}
.inner-page .next-section .statement{font-size:clamp(32px,4.8vw,68px)}
.inner-page .next-section .body-copy{max-width:48em;font-size:16px;margin-top:24px}
.inner-page .next-section .scope-note{color:#c8c8c0}
.inner-page .page-toc.page-content{padding:22px var(--gutter);margin:0 auto 66px}
.site-menu{width:min(580px,calc(100vw - 48px));max-height:calc(100svh - 112px);overflow:auto;padding:28px 30px;box-shadow:0 20px 70px #0003}
.site-menu .menu-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-bottom:22px}
.site-menu .menu-group+.menu-group{border-top:1px solid #ffffff26;padding-top:16px}
.site-menu a{font-size:13px;line-height:1.8;min-height:46px}
.site-menu a[aria-current="page"]{color:#a9bcff}
.site-menu>a:last-child{font-size:16px;padding-block:20px;border-top:1px solid #ffffff40}
.footer-nav a{min-height:38px;display:flex;align-items:center}
.footer-nav a:hover{color:#b7c6ff}
.home-route{max-width:1700px;margin:auto;padding:45px 4vw 110px}
.home-route-top{display:grid;grid-template-columns:1fr 1fr;gap:8vw;border-top:1px solid var(--ink);padding-top:30px}
.home-route h2{font-size:clamp(26px,3.4vw,48px);line-height:1.6;font-weight:600;margin-top:0}
.home-route-top>p{font-size:16px;line-height:2;max-width:35em;align-self:end}
.home-route-list{margin-top:42px;border-top:1px solid var(--line)}
.home-route-list>a{display:grid;grid-template-columns:130px 1fr 1fr 24px;gap:26px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line);transition:color .25s}
.home-route-list .route-label{font:11px var(--mono);color:var(--muted);letter-spacing:.03em}
.home-route-list strong{font-size:22px;font-weight:600;line-height:1.6}
.home-route-list .route-description{font-size:13px;line-height:1.9;max-width:34em}
.home-route-list .route-arrow{font-size:25px;transition:transform .25s var(--ease-editorial)}
.home-route-list>a:hover{color:var(--blue)}
.home-route-list>a:hover .route-arrow{transform:translate(4px,-4px)}
.home-route-foot{display:flex;flex-wrap:wrap;gap:20px 42px;margin-top:28px;font-size:13px}
.home-route-foot a{text-decoration:underline;text-underline-offset:5px}
.home-page .capability-image:focus-visible{outline-offset:8px}
@media(min-width:1800px){.breadcrumbs{padding-inline:48px}.inner-page .page-intro,.inner-page .page-content{padding-inline:48px}}
@media(max-width:1024px){.home-route-list>a{grid-template-columns:90px 1fr 1fr 20px;gap:18px}.inner-page .page-title{font-size:10vw}.service-diagram li{padding-right:20px}.service-diagram li+li{padding-left:20px}}
@media(max-width:768px){
 .breadcrumbs{padding:102px 24px 0;font-size:10px}.inner-page .site-brand{font-size:22px}
 .inner-page .page-intro{padding-top:28px;padding-bottom:48px}.inner-page .page-title{font-size:12vw;margin-bottom:30px}
 .inner-page .page-intro>.split-section{grid-template-columns:1fr;gap:24px;padding-top:28px}
 .inner-page .page-intro h1.statement{font-size:clamp(27px,5.5vw,40px);line-height:1.65}
 .inner-page .page-intro .body-copy,.inner-page .split-section .body-copy{font-size:15px;line-height:2}
 .inner-page .page-content{padding-bottom:62px}.page-toc{display:block;padding-block:18px;margin-block:24px 32px}.page-toc ol,.page-toc ul{gap:10px 24px;margin-top:16px;font-size:12px}
 .service-diagram,.service-diagram ol{grid-template-columns:1fr}.service-diagram li,.service-diagram li+li{border-left:0;padding:26px 0 26px 24px;border-bottom:1px solid var(--line)}
 .service-diagram li:last-child{border-bottom:0}.service-diagram li::before{top:30px}.service-diagram h3{margin:10px 0 14px;font-size:24px}.service-diagram p{font-size:14px}
 .service-route{gap:14px}.service-route>span:first-child{min-width:50px;font-size:10px}.service-route strong{font-size:17px}
 .sitemap-grid{grid-template-columns:1fr;gap:42px}.sitemap-group h2{font-size:23px}
 .faq-list .faq-item summary{font-size:15px}.faq-list .faq-item p{font-size:14px;padding-right:0}
 .site-menu{padding:22px;max-height:calc(100svh - 108px)}.site-menu .menu-group{gap:0 16px}.site-menu a{font-size:12px}
 .article-list .article-item:has(>span.article-meta){grid-template-columns:minmax(0,1fr) 24px}
 .article-list .article-item>span.article-meta{grid-column:1/-1;font-size:11px}
 .article-list .article-item:has(>time.article-meta){grid-template-columns:minmax(0,1fr);gap:8px}
 .home-route{padding:20px 24px 70px}.home-route-top{grid-template-columns:1fr;gap:24px}.home-route-top>p{font-size:14px}
 .home-route h2{font-size:30px;margin-top:0}.home-route-list{margin-top:30px}
 .home-route-list>a{grid-template-columns:1fr 24px;gap:10px 20px;padding:25px 0}.home-route-list .route-label{grid-column:1}.home-route-list strong{grid-column:1;font-size:20px}.home-route-list .route-description{grid-column:1}.home-route-list .route-arrow{grid-column:2;grid-row:1/4;align-self:center}
 .home-route-foot{gap:16px 24px;font-size:12px}.related-pages{margin-top:48px}
}
@media(max-width:420px){.site-menu .menu-group{grid-template-columns:1fr}.site-menu a{min-height:44px}.site-menu{width:calc(100vw - 64px);padding:20px}.breadcrumbs{padding-inline:20px}.inner-page .page-title{font-size:12vw}.inner-page .page-intro h1.statement{font-size:27px}.home-route{padding-inline:20px}.home-route h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){.service-route span,.home-route-list span,.faq-list summary>span{transition:none!important;transform:none!important}}
.motion-paused .service-route span,.motion-paused .home-route-list span,.motion-paused .faq-list summary>span{transition:none!important}

/* Concrete project imagery, retaining the existing hero-to-section arrival. */
.home-page .intro-section .sculpture--work img{width:100%;height:auto;max-height:none;aspect-ratio:4/3;object-fit:cover}
.home-page .sculpture--work figcaption{margin-left:0}
