/* Shared navigation and responsive refinements. */
html{scroll-behavior:smooth}body{min-width:0}img{max-width:100%}button,input,textarea{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid currentColor;outline-offset:5px}main:focus{outline:none}
.skip-link{position:fixed;z-index:100;left:20px;top:-100px;padding:12px 18px;background:#342e2e;color:white}.skip-link:focus{top:12px}
body .site-header{display:block;position:relative;z-index:10;height:83px;width:100%;background:#e9e9e7}
body .site-header .header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;width:min(calc(100% - 76px),1810px);margin:0 auto}
body .site-header .brand{font:400 30px/1 Arial,Helvetica,sans-serif;letter-spacing:-1.35px}
body .site-header .main-nav{position:static;display:flex;gap:37px;align-items:center;font-size:15px;margin:0;padding:0;background:transparent;width:auto}
body .main-nav a{padding:5px 0;border-bottom:1px solid transparent}body .main-nav a:hover,body .main-nav a[aria-current]{border-bottom-color:currentColor}
body .site-header .menu-button{display:none;color:#312e2e;border:0;background:transparent;cursor:pointer;width:44px;height:44px;padding:4px}
body .menu-button span{display:block;width:32px;height:1px;background:currentColor;margin:8px 0 8px auto;transition:transform .2s}
body .site-footer{background:#342e2e;color:white}
body .site-footer .footer-inner{width:min(calc(100% - 152px),1734px);margin:0 auto;min-height:250px;padding:52px 0 36px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;grid-template-areas:'brand links' '. .' 'copyright privacy';gap:0}
body .footer-brand{grid-area:brand}body .footer-brand img{display:block;width:166px;height:auto}body .footer-brand p{font-size:13px;line-height:1.5;font-weight:400;margin:12px 0 0}
body .footer-links{grid-area:links;justify-self:end;display:flex;flex-direction:column;gap:26px;align-items:flex-end;font-size:15px;margin:0}
body .footer-links a,body .privacy{text-decoration:underline;text-underline-offset:3px}body .footer-inner small{grid-area:copyright;align-self:end;font-size:13px}body .privacy{grid-area:privacy;justify-self:end;align-self:end;font-size:13px;margin:0}
.utility{min-height:55vh;padding-top:90px;padding-bottom:110px}.utility h1{font-size:clamp(32px,4vw,52px);font-weight:400;line-height:1.1}.utility p{font-size:20px;line-height:1.5}.text-link{text-decoration:underline;text-underline-offset:4px}
@media(max-width:1000px){body .site-header .main-nav{gap:24px}.split,.challenge,.feature,.material-grid{min-width:0}.moves>.section-head h2{font-size:clamp(28px,3.6vw,42px)}}
@media(min-width:1100px){.moves>.section-head h2{font-size:clamp(30px,3.05vw,42px);white-space:nowrap}}
@media(max-width:900px){
 :root{--side:20px}body .site-header{height:auto;min-height:80px}body .site-header .header-inner{width:calc(100% - 40px);min-height:80px;flex-wrap:wrap}
 body .site-header .main-nav{display:flex;width:100%;gap:12px 24px;flex-wrap:wrap;justify-content:flex-start;font-size:16px;padding:0 0 20px}
 .js body .site-header .menu-button{display:block}.js body .site-header .main-nav{display:none;position:absolute;left:0;right:0;top:80px;width:100%;padding:20px;flex-direction:column;align-items:flex-start;gap:12px;background:#e9e9e7;border-bottom:1px solid #ccc}
 .js body .site-header .main-nav.is-open{display:flex}.js body .main-nav a{padding:8px 0}
 body .menu-button[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}body .menu-button[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
 body .site-footer .footer-inner{width:calc(100% - 40px);display:flex;flex-direction:column;align-items:flex-start;min-height:auto;padding:36px 0 24px;gap:0}
 body .footer-links{margin:28px 0;align-items:flex-start;gap:22px}body .footer-inner small{align-self:auto}body .privacy{align-self:auto;margin-top:24px}
 .project-nav,.article-pagination{gap:24px;overflow-wrap:anywhere}.project-nav a{max-width:100%}.contact-form input,.contact-form textarea{font-size:16px}.plan img{min-width:0!important;width:100%;height:auto!important;max-height:none!important}
}
@media(max-width:520px){
 body .project-grid,body .project-stack{display:grid;grid-template-columns:minmax(0,1fr);gap:30px}body .project,body .project-narrow{width:100%}body .intro p{font-size:16px;line-height:1.5}body .project span{font-size:17px}
 .page-shell{max-width:calc(100% - 40px)}.portfolio-grid{row-gap:45px}.article-pagination{display:flex;flex-direction:column;align-items:flex-start}.article-pagination a{max-width:100%}.article-pagination a:last-child{align-self:flex-start;text-align:left}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
body .hero img{max-width:none}
@media(max-width:520px){:root{--side:20px}}
/* Retain useful image magnification for small floor plans. */
.plan a{display:block}.plan a:focus-visible{outline-offset:4px}

/* Original approved dark logo, with its transparent outer margins clipped in CSS. */
body .site-header .brand{position:relative;display:block;flex:0 0 auto;width:176px;height:auto;aspect-ratio:1737/425;overflow:hidden}
body .site-header .brand img{position:absolute;display:block;width:117.9044%;max-width:none;height:auto;left:-10.24755%;top:-30.58824%}
@media(max-width:520px){body .site-header .brand{width:160px}}

/* Portfolio introduction uses the new image in the existing frame. */
.portfolio-intro .intro-image{height:auto;aspect-ratio:1.31/1;object-fit:cover;object-position:center}
/* Keep all five decisions at the same scale; the first fits on one desktop line. */
@media(min-width:1100px){.moves-list p{font-size:clamp(18px,1.8vw,26px);max-width:none}.moves-list li:first-child p{white-space:nowrap}}

.blog-intro p.signature-detail{font-size:16px;line-height:1.45;font-style:normal;font-weight:400;margin:8px 0 0}
