/* Shared editorial grid: generous margins, a quiet index, and a clear reading column. */
:root{--header-height:96px;--section-space:clamp(88px,8.5vw,136px);--gutter:clamp(28px,4.5vw,72px);scroll-padding-top:110px}
.shell{width:calc(100% - var(--gutter)*2);max-width:1360px}
.brand{width:152px}.desktop-nav{gap:44px}.desktop-nav a{font-size:.9375rem}
.section{padding-block:var(--section-space)}
.section-heading{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:64px;margin-bottom:72px}
.section-heading h2{font-size:clamp(2.5rem,3.7vw,3.5rem);line-height:1.4;letter-spacing:-.045em}
.section-index{font-size:.875rem;letter-spacing:.06em;padding-top:12px}
.text-link{gap:32px;font-size:.9375rem}













/* Home opening: one typographic composition on warm paper. */
.home-page{--header-height:88px}
.home-page .site-header:not(.menu-open){color:var(--ink);background:var(--paper)}
.home-page .site-header:not(.menu-open):not(.is-scrolled){background:transparent}
.home-page .header-inner{border-bottom-color:transparent}
.home-page .brand{width:124px}
.home-page .site-header:not(.menu-open) .logo-light{display:none}
.home-page .site-header:not(.menu-open) .logo-dark{display:block}
.home-page .site-header:not(.menu-open) a:focus-visible,.home-page .site-header:not(.menu-open) button:focus-visible{outline-color:var(--accent)}
.hero{position:relative;min-height:clamp(720px,88svh,940px);background:var(--paper);color:var(--ink)}
.hero-art{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero-art img{width:100%;height:100%;object-fit:cover;object-position:center bottom}
.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#f3f1ebad,transparent 150px)}
.hero-content{position:relative;min-height:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:40px;padding-block:130px 160px;text-align:center}
.hero-heading{width:100%;min-width:0}
.hero h1{display:flex;justify-content:center;gap:.13em .32em;font-size:clamp(4rem,10.8vw,10.5rem);font-weight:400;line-height:1.15;letter-spacing:.015em}
.hero h1 span{flex:none;white-space:nowrap}
.hero h1.is-stacked{flex-direction:column;align-items:center}
.hero-copy{max-width:100%}
.hero-intro{font-size:1.125rem;line-height:1.9;max-width:34em;margin-inline:auto}
.hero-intro span{display:inline-block;max-width:100%;text-wrap:pretty}
.hero-link{display:inline-flex;align-items:center;gap:36px;min-height:48px;margin-top:24px;padding-block:10px;border-bottom:1px solid currentColor;font-size:.9375rem;line-height:1.7;color:var(--accent)}
.hero-link span{display:inline-block;font-size:1.1875rem;transition:transform .35s var(--motion-ease)}
.hero-link:hover span,.hero-link:focus-visible span{transform:translate(3px,-3px)}
.home-page .services{border-top:1px solid var(--line)}
.service-lead{font-size:1.125rem;line-height:1.9;color:var(--muted);max-width:34em;margin-top:24px}
@media(max-width:767px){
 .home-page{--header-height:76px}.home-page .brand{width:100px}
 .hero{min-height:clamp(680px,92svh,780px)}
 .hero-art img{object-position:72% bottom}
 .hero-art:after{background:linear-gradient(90deg,#f3f1ebdc 0%,#f3f1ebd6 40%,#f3f1eb73 68%,transparent 95%),linear-gradient(180deg,#f3f1ebad,transparent 150px)}
 .hero-content{align-items:flex-start;justify-content:flex-start;padding-block:146px 80px;gap:36px;text-align:left}
 .hero h1,.hero h1.is-stacked{flex-direction:column;align-items:flex-start;font-size:clamp(4rem,19.5vw,4.75rem);line-height:1.12;letter-spacing:.025em}
 .hero-intro{font-size:1rem;max-width:26em;margin:0;line-height:1.9}
 .hero-link{margin-top:24px}.service-lead{font-size:1rem;margin-top:22px}
}
@media(max-width:359px){.hero-content{padding-top:132px}}

/* Service columns and project rows deliberately have different silhouettes. */
.service-grid{gap:0}
.service{padding:30px 38px 0;border-top:1px solid var(--line)}
.service:first-child{padding-left:0}.service:last-child{padding-right:0}
.service+.service{border-left:1px solid var(--line)}
.service-number{font-size:.875rem;margin-bottom:46px}
.service h3{font-size:clamp(1.375rem,2vw,1.75rem);line-height:1.5;margin-bottom:22px}
.service p{font-size:1.0625rem;line-height:1.9;max-width:23em}
.service-detail-link{margin-top:36px}
.work-section{background:#e9e7e0;border:0}
.work-section .section-heading{align-items:end;margin-bottom:62px}
.project-grid{display:block;border-bottom:1px solid #bfc1b7}
.project{display:grid;grid-template-columns:52px minmax(0,1.1fr) minmax(0,1fr) auto;align-items:center;column-gap:40px;padding:38px 0;min-height:172px}
.project-number{font-size:.875rem;font-variant-numeric:tabular-nums;color:var(--muted);align-self:start;padding-top:7px}
.project-category{font-size:.875rem;margin-bottom:13px}
.project h3{font-size:clamp(2rem,2.8vw,2.625rem);line-height:1.35;margin:0;letter-spacing:-.04em}
.project-description{margin:0;max-width:26em;font-size:1.0625rem;line-height:1.9}
.project .text-link{margin:0;justify-self:end;white-space:nowrap}
.about{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:112px}
.about h2{font-size:clamp(2.75rem,3.8vw,3.625rem);line-height:1.35;margin-top:30px}
.about-line{margin-top:34px;font-size:.875rem}
.principles article{gap:32px;padding-block:38px}
.principles article>span{font-size:.875rem}.principles h3{font-size:1.5rem;margin-bottom:12px}.principles p{font-size:1.0625rem}

/* Contact is a clear final destination, with the address and actions kept together. */
.contact-section{background:var(--dark);color:var(--paper);border:0}
.contact-inner{padding-block:88px 94px}
.contact-section .section-index,.contact-prompt,.contact-section .copy-status{color:#c1c4b9}
.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:112px;margin-top:44px;align-items:start}
.contact-grid h2{font-size:clamp(3rem,4.8vw,4.5rem);line-height:1.2;letter-spacing:-.045em}
.contact-details{min-width:0;padding-top:3px}
.email-address{font-size:clamp(1.5rem,2.3vw,2.125rem);line-height:1.65;letter-spacing:-.025em}
.email-address:hover,.contact-section .text-link{color:#e8b9a4}
.contact-section a:focus-visible,.contact-section button:focus-visible{outline-color:#e8b9a4}
.contact-actions{margin-top:32px;gap:36px}.contact-section .copy-email{color:#c1c4b9}.contact-section .copy-email:hover{border-color:#c1c4b9}
.contact-prompt{font-size:1rem;max-width:35em;line-height:1.85;margin-bottom:24px}
.contact-section .copy-status{margin-top:18px;min-height:1.9em}
.site-footer{min-height:145px;padding-block:40px;border:0;gap:32px}
.site-footer img{width:130px}.site-footer p{font-size:.875rem}.site-footer small{font-size:.8125rem}

/* Service pages: concise opening, then a stable left-hand chapter column. */
.service-selector{padding-top:20px}.service-selector nav{gap:36px}.service-selector a{font-size:.875rem}
.detail-hero{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:88px;padding-block:76px 84px;align-items:center}
.detail-label{font-size:.875rem;letter-spacing:.06em;margin-bottom:28px}
.detail-hero h1{font-size:clamp(3.25rem,4.7vw,4.5rem);line-height:1.35;margin-bottom:30px;letter-spacing:-.05em}
.detail-headline{font-size:1.375rem;line-height:1.7;margin-bottom:20px;max-width:28em}
.detail-description{font-size:1.0625rem;line-height:1.95;max-width:31em}
.detail-intro>.text-link{margin-top:26px}
.detail-visual{min-height:0;aspect-ratio:3/2;align-self:center}

.page-index{justify-content:space-between;gap:24px;padding-block:14px}.page-index a{font-size:.875rem}
.service-page #scope,.service-page #delivery,.collaboration-section>.section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:88px}
.service-page .detail-section-heading{display:block;margin:0;align-self:start;position:sticky;top:120px}
.detail-section-heading .section-index{padding:0;margin-bottom:28px}
.detail-section-heading h2{font-size:clamp(2rem,2.8vw,2.625rem);line-height:1.45}
.section-intro{font-size:1rem;line-height:1.95;margin-top:24px;max-width:26em}
.scope-grid{grid-template-columns:1fr;gap:38px}
.scope-item{grid-template-columns:32px minmax(0,1fr);gap:24px;padding-top:28px}
.scope-item h3{font-size:1.5rem;margin-bottom:16px}.scope-item p{font-size:1.0625rem;line-height:1.9}.scope-item .scope-tags{font-size:.875rem;margin-top:20px}
.scope-number,.process-number,.delivery-number{font-size:.875rem}
.process-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 36px;align-self:start}
.process-number{margin-bottom:25px}.process-grid h3{font-size:1.375rem;margin-bottom:16px}.process-grid p{font-size:1rem;line-height:1.9}
.collaboration-section{border:0}
.scope-note{grid-column:2;grid-template-columns:1fr;gap:12px;margin-top:-36px;padding-top:28px}.scope-note h3{font-size:1rem}.scope-note p{font-size:1rem;line-height:1.9}
.delivery-list article{grid-template-columns:32px minmax(0,1fr);gap:12px 24px;padding-block:28px}
.delivery-number{grid-row:span 2}.delivery-list h3{font-size:1.375rem}.delivery-list p{grid-column:2;font-size:1.0625rem;line-height:1.9}
.related-section{background:#e9e7e0;border:0}.related-section .section{padding-block:82px 88px}
.related-project{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:88px;margin-top:36px}
.related-project .project-category{font-size:.875rem;line-height:1.85;margin-bottom:20px}.related-project h2{font-size:clamp(2.5rem,3.5vw,3.25rem);line-height:1.4}
.related-summary{font-size:1.125rem;line-height:1.95}.related-project .text-link{margin-top:25px}
.related-note{font-size:1rem;line-height:1.9}

@media(max-width:1100px){

 .service{padding-inline:24px}.project{grid-template-columns:32px minmax(0,1fr) minmax(0,1fr);gap:22px 28px}.project .text-link{grid-column:3;justify-self:start}.project-description{align-self:center}.project-number{grid-row:span 2}
 .about,.contact-grid{gap:56px}.contact-grid h2{font-size:3.5rem}
 .detail-hero{gap:48px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.detail-hero h1{font-size:3.25rem}
 .service-page #scope,.service-page #delivery,.collaboration-section>.section,.related-project{grid-template-columns:minmax(0,1fr) minmax(0,1.65fr);gap:48px}
 .scope-note{margin-top:-8px}.process-grid{column-gap:28px}
}
@media(max-width:900px){
 :root{--section-space:88px;--gutter:32px}
 .section-heading{gap:36px;margin-bottom:56px}.section-heading h2{font-size:2.75rem}

 .service h3{font-size:1.375rem}.service p{font-size:1rem}.service-number{margin-bottom:28px}
 .about{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:40px}.about h2{font-size:2.75rem}.principles article{gap:24px;padding-block:30px}.principles h3{font-size:1.375rem}
 .contact-grid{grid-template-columns:1fr;gap:30px}.contact-grid h2{font-size:3.75rem}.email-address{font-size:2rem}.contact-inner{padding-block:72px 66px}
 .detail-hero{grid-template-columns:1fr;gap:42px;padding-block:60px 64px}.detail-hero h1{font-size:3.75rem}.detail-description{max-width:34em}
 .service-page #scope,.service-page #delivery,.collaboration-section>.section{display:block}.service-page .detail-section-heading{position:static;margin-bottom:48px;display:grid;grid-template-columns:1fr 2fr;gap:32px}.detail-section-heading h2{font-size:2.5rem}.detail-section-heading .section-index{padding-top:8px;margin:0}.section-intro{max-width:34em}
 .scope-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}.scope-item{grid-template-columns:24px minmax(0,1fr);gap:16px}.scope-item h3{font-size:1.375rem}.scope-item p{font-size:1rem}.scope-item .scope-tags{font-size:.875rem}
 .process-grid{gap:40px}.scope-note{margin-top:46px;grid-template-columns:1fr 2fr;gap:32px}
 .delivery-list article{grid-template-columns:32px minmax(0,1fr) minmax(0,2fr);gap:28px}.delivery-number{grid-row:auto}.delivery-list p{grid-column:auto}
 .related-project{gap:36px}.related-summary{font-size:1.0625rem}
}
@media(max-width:767px){
 :root{--header-height:76px;--section-space:72px;--gutter:24px;scroll-padding-top:92px}
 .brand{width:120px}

 .section-heading{display:block;margin-bottom:40px}.section-index{font-size:.875rem;margin-bottom:24px;padding:0}.section-heading h2{font-size:2.125rem;line-height:1.45}
 .service-grid{grid-template-columns:1fr;gap:0}.service,.service:first-child,.service:last-child{padding:28px 0 30px}.service+.service{border-left:0}.service:last-child{padding-bottom:0}.service-number{font-size:.875rem;margin-bottom:20px}.service h3{font-size:1.5rem;margin-bottom:15px}.service p{font-size:1rem;max-width:none}.service-detail-link{margin-top:20px}
 .work-section .section-heading{margin-bottom:40px}.project{grid-template-columns:22px minmax(0,1fr);gap:18px 20px;padding-block:30px;min-height:0}.project-number{grid-column:1;grid-row:1;padding-top:2px}.project-heading{grid-column:2}.project-category{font-size:.875rem;margin-bottom:11px}.project h3{font-size:1.875rem}.project-description{grid-column:2;font-size:1rem;max-width:none}.project .text-link{grid-column:2;justify-self:start;margin-top:0;gap:28px}
 .about{display:block}.about h2{font-size:2.25rem;line-height:1.45;margin-top:0}.about h2 br{display:block}.about h2 span{margin-left:0}.about-line{margin-top:24px}.principles{margin-top:40px}.principles article{gap:20px;padding-block:27px}.principles h3{font-size:1.25rem;margin-bottom:10px}.principles p{font-size:1rem}
 .contact-inner{padding-block:60px 48px}.contact-grid{display:block;margin-top:32px}.contact-grid h2{font-size:3rem;margin-bottom:32px}.email-address{font-size:clamp(1rem,4.85vw,1.625rem);letter-spacing:-.03em}.contact-details{padding:0}.contact-actions{gap:24px;margin-top:26px}.contact-prompt{font-size:1rem;margin-bottom:26px}.contact-section .copy-status{font-size:.875rem}
 .site-footer{display:grid;grid-template-columns:1fr auto;padding-block:34px;gap:24px 16px;min-height:0}.site-footer>a{grid-column:1}.site-footer img{width:110px}.site-footer p{grid-column:1 / -1;grid-row:2;font-size:.875rem;max-width:22em}.site-footer small{grid-column:2;grid-row:1;align-self:center;font-size:.75rem}
 .service-selector{padding-top:16px}.service-selector nav{gap:0 20px}.service-selector a{font-size:.875rem;min-height:44px}
 .detail-hero{padding-block:42px 46px;gap:32px}.detail-label{font-size:.875rem;letter-spacing:.035em;margin-bottom:20px}.detail-hero h1{font-size:clamp(2.25rem,10vw,3rem);line-height:1.4;margin-bottom:24px}.detail-headline{font-size:1.25rem;margin-bottom:18px}.detail-description{font-size:1rem}.detail-intro>.text-link{margin-top:20px}
 .page-index{gap:4px 20px;padding-block:14px}.page-index a{font-size:.875rem}
 .service-page .detail-section-heading{display:block;margin-bottom:36px}.detail-section-heading .section-index{padding:0;margin-bottom:22px}.detail-section-heading h2{font-size:2rem;line-height:1.45}.section-intro{font-size:1rem;line-height:1.9;margin-top:20px}
 .scope-grid{grid-template-columns:1fr;gap:30px}.scope-item{grid-template-columns:24px minmax(0,1fr);gap:18px;padding-top:24px}.scope-item h3{font-size:1.375rem}.scope-item p{font-size:1rem}.scope-item .scope-tags{font-size:.875rem;margin-top:18px}
 .process-grid{grid-template-columns:1fr;gap:28px}.process-grid li{grid-template-columns:24px minmax(0,1fr);column-gap:18px}.process-number{margin:0}.process-grid h3{font-size:1.25rem;margin:0}.process-grid p{font-size:1rem;line-height:1.9}
 .scope-note{grid-template-columns:1fr;gap:13px;margin-top:40px;padding-top:24px}.scope-note p{font-size:1rem}
 .delivery-list article{grid-template-columns:24px minmax(0,1fr);gap:12px 18px;padding-block:26px}.delivery-number{grid-row:span 2}.delivery-list h3{font-size:1.25rem}.delivery-list p{grid-column:2;font-size:1rem}
 .related-section .section{padding-block:60px}.related-project{display:block;margin-top:28px}.related-project h2{font-size:2.25rem}.related-project .project-category{font-size:.875rem;margin-bottom:16px}.related-summary{font-size:1rem;margin-top:28px}.related-note{font-size:1rem}
}
@media(max-width:359px){:root{--gutter:20px}.contact-grid h2{font-size:2.75rem}.contact-actions{column-gap:20px}.text-link,.copy-email{font-size:.9375rem}}
@media print{.service-page .detail-section-heading{position:static}.contact-section{background:white;color:var(--ink)}.contact-section .section-index,.contact-section .text-link,.contact-section .copy-email{color:var(--ink)}}
