@font-face{font-family:'General Sans';src:url('assets/general-sans-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'General Sans';src:url('assets/general-sans-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'General Sans';src:url('assets/general-sans-600.woff2') format('woff2');font-weight:600;font-display:swap}
:root{--paper:#fff;--white:#fff;--ink:#13243a;--navy:#13243a;--tone:#f1f3f3;--night:#0d1b2d;--muted:#455163;--soft-ink:#d6dfe7;--focus:#6686ac;--hover:#2b435e;--display:'General Sans',Arial,sans-serif;--text:'General Sans',Arial,sans-serif;--small:14px;--body:17px;--lead:24px;--head:clamp(36px,3.5vw,52px);--hero:clamp(64px,6.6vw,96px);--gutter:clamp(22px,5vw,80px);--ease-out:cubic-bezier(.23,1,.32,1);scroll-behavior:auto;scroll-padding-top:110px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--text);font-size:var(--body);line-height:1.6;scrollbar-color:var(--muted) var(--paper)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button,a,summary{-webkit-tap-highlight-color:transparent}img,video{display:block;max-width:100%}figure,p,h1,h2,h3,ul,ol,dl,dd,blockquote{margin:0}p+p{margin-top:20px}p{text-wrap:pretty}h1,h2,h3{text-wrap:balance}h1,h2{font-family:var(--display);font-weight:500;line-height:1.08;letter-spacing:-.035em}h2{font-size:var(--head);max-width:22ch}h3{font-size:var(--lead);font-weight:500;line-height:1.25;letter-spacing:-.02em}ul,ol{padding:0}svg{flex-shrink:0}button[hidden],[hidden]{display:none!important}::selection{background:var(--navy);color:var(--white)}:focus-visible{outline:3px solid var(--focus);outline-offset:5px}button,a{touch-action:manipulation}.wrap{width:calc(100% - var(--gutter)*2);max-width:1440px;margin-inline:auto}.section{padding-block:112px}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;margin-bottom:48px}.section-heading>p,.section-heading>div{max-width:50ch}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;padding:12px 20px;background:var(--navy);color:var(--white)}.skip-link:focus{top:12px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:52px;padding:14px 22px;background:var(--navy);color:var(--white);font-weight:500;font-size:var(--small);transition:background-color 180ms ease,transform 140ms var(--ease-out)}.text-link{display:inline-flex;align-items:center;gap:16px;min-height:44px;padding:4px 0;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}.button svg,.text-link svg{transition:transform 180ms var(--ease-out)}.button:active,.menu-toggle:active,.project-filters button:active,.gallery-arrow:active{transform:scale(.97)}
.site-header{background:var(--paper);position:sticky;top:0;z-index:20}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:92px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-symbol{display:block;width:30px;height:44px;overflow:hidden;flex-shrink:0;mix-blend-mode:multiply}.brand-symbol img{width:66.6px;max-width:none;height:84.4px;transform:translate(-18.1px,-21.7px)}.brand-type{font-size:24px;font-weight:600;line-height:1.1;letter-spacing:-.04em}.brand-inc{font-size:var(--small);letter-spacing:0}.brand-descriptor{display:block;margin-top:5px;font-size:13px;letter-spacing:0;font-weight:400}.desktop-nav{display:flex;gap:32px;margin-left:auto;margin-right:32px;font-size:var(--small)}.desktop-nav a{padding-block:16px}.menu-toggle{display:none;align-items:center;gap:8px;min-height:44px;padding:8px 0}.mobile-nav{padding:12px var(--gutter) 24px;background:var(--paper)}.mobile-nav a{display:block;padding:12px 0;font-size:var(--lead)}
.hero{padding-top:52px;padding-bottom:48px}.hero-top{display:grid;grid-template-columns:1fr 230px;gap:40px;align-items:start;margin-bottom:34px}.hero h1{font-size:var(--hero);font-weight:500;line-height:1.03;max-width:1000px}.hero h1 span{display:block}.hero-location{padding-top:14px;font-size:var(--small);line-height:1.7}.hero-bottom{display:grid;grid-template-columns:4fr 8fr;gap:48px;align-items:end}.hero-copy{padding-bottom:28px;max-width:36ch}.hero-description{line-height:1.6;margin-bottom:26px;max-width:31ch}.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.hero-actions .text-link{font-size:var(--small);font-weight:500}.hero-note{font-size:var(--small);margin-top:18px;color:var(--muted)}.hero-work-link{margin-top:28px;font-size:var(--small)}.hero-project{overflow:hidden}.hero-project img{width:100%;height:clamp(300px,29vw,430px);object-fit:cover;object-position:50% 56%}.hero-project figcaption{padding-top:12px;font-size:var(--small)}
.experience-strip{background:var(--tone)}.experience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;list-style:none;padding-block:34px}.experience-grid li{display:flex;align-items:center;gap:20px}.experience-grid strong{font-size:44px;font-weight:500;line-height:1;white-space:nowrap;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.experience-grid li>span{font-size:var(--small);line-height:1.5;max-width:18ch}
.services-list{display:grid;gap:24px}.service-row{display:grid;grid-template-columns:3fr 5fr 2fr;gap:48px;align-items:start;padding-block:20px}.service-row>div{max-width:52ch}.service-row>img{width:100%;height:144px;object-fit:cover}.service-row:first-child>img{object-position:50% 45%}.scope-list{font-size:var(--small);color:var(--muted);line-height:1.7;margin-top:16px}.multifamily-scope{margin-top:48px;padding:40px;background:var(--navy);color:var(--white);display:grid;grid-template-columns:1fr 2fr;gap:48px}.multifamily-scope>div>p{margin-top:18px;max-width:25ch;font-size:var(--small);color:var(--soft-ink)}.division-list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.division-list dt{font-size:var(--small);color:var(--soft-ink);margin-bottom:20px}.division-list dd{font-size:var(--small);line-height:1.6}.division-list dd strong{display:block;font-weight:500;font-size:var(--body);margin-bottom:8px}
.work-section{background:var(--tone)}.work-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px}.project-filters{display:flex;gap:4px;flex-wrap:wrap}.project-filters button{min-height:44px;padding:11px 16px;font-size:var(--small);transition:background-color 160ms ease,transform 140ms var(--ease-out)}.project-filters button[aria-pressed=true]{background:var(--navy);color:var(--white)}.project-count{font-size:var(--small);white-space:nowrap}.project-grid{display:grid;grid-template-columns:1.15fr .9fr 1fr;gap:28px;align-items:start}.project:nth-child(2){padding-top:64px}.project:nth-child(3){padding-top:24px}.project-image-button{display:block;width:100%;padding:0;overflow:hidden;background:var(--paper);text-align:left}.project-image-button img{width:100%;height:330px;object-fit:cover;transition:transform 400ms var(--ease-out)}.project:nth-child(2) img{height:270px}.project:nth-child(3) img{height:310px}.project-meta{padding-top:22px}.project-meta h3{font-size:var(--lead);font-weight:500;line-height:1.15;letter-spacing:-.025em}.project-meta p{margin-top:14px;font-size:var(--small);max-width:38ch}.project-meta .text-link{margin-top:12px;font-size:var(--small)}.project-meta .text-link svg{display:none}
.about-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:100px;align-items:start}.about-copy>p{max-width:55ch;margin-top:24px}.about-figure{margin-top:40px}.about-figure img{width:100%;height:270px;object-fit:cover;object-position:center 58%}.about-figure figcaption{margin-top:12px;font-size:var(--small)}.field-film{width:280px;max-width:100%;justify-self:center;margin-top:48px}.hero-image-frame{aspect-ratio:9/16;background:var(--tone)}.hero-video{width:100%;height:100%;object-fit:contain}.hero-image-frame>img{width:100%;height:100%;object-fit:contain}.field-film figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--small);padding-top:10px}#motion-toggle{display:flex;align-items:center;gap:7px;min-height:44px;padding:8px 0;font-size:var(--small);text-decoration:underline;text-underline-offset:4px}.motion-symbol{display:flex;align-items:center}
.process-section{padding-top:0}.process-list{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;list-style:none}.process-list h3{font-size:var(--body);font-weight:500}.process-list p{font-size:var(--small);margin-top:16px;max-width:32ch}.process-section .section-heading{margin-bottom:44px}.process-section h2 br{display:none}.process-section h2 br::after{content:' '}
.testimonials{background:var(--tone);width:100%;max-width:none;padding-inline:var(--gutter)}.testimonials>h2,.quote-grid{max-width:1440px;margin-inline:auto}.quote-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:100px;margin-top:48px}.quote-grid figure{display:flex;flex-direction:column;gap:28px}.quote-grid blockquote{font-size:var(--body);line-height:1.85;max-width:60ch}.quote-grid figcaption{margin-top:auto;font-size:var(--small);display:flex;flex-direction:column;gap:4px}.quote-grid strong{font-weight:600}
.faq-section{display:grid;grid-template-columns:1fr 1.3fr;gap:80px}.faq{display:grid;gap:12px}.faq details{background:var(--tone);padding:22px 24px}.faq summary{font-size:var(--body);cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:36px}.faq summary::-webkit-details-marker{display:none}.faq summary svg{width:24px;height:24px;flex-shrink:0}.faq details[open] .disclosure-vertical{visibility:hidden}.faq details p{margin-top:20px;max-width:65ch;font-size:var(--small)}
.contact-section{background:var(--tone);position:relative;min-height:650px;display:grid;grid-template-columns:1fr 1fr}.contact-image{width:100%;height:100%;max-height:800px;object-fit:cover;object-position:50% 55%}.contact-grid{width:100%;max-width:none;margin:0;padding:64px;display:flex;align-items:center}.contact-panel{max-width:560px}.contact-panel>p{margin-top:22px}.contact-email{display:inline-block;font-size:var(--lead);margin-top:24px;letter-spacing:-.02em;overflow-wrap:anywhere}.copy-row{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:4px;font-size:var(--small)}.copy-email{font-size:var(--small)}.inquiry-panel{margin-top:28px}.inquiry-panel h3{font-size:var(--body);font-weight:500}.email-checklist{list-style:none;display:grid;gap:6px;margin-block:16px 26px;font-size:var(--small)}.contact-actions{display:flex;flex-wrap:wrap;gap:12px}.text-now{justify-content:center;background:var(--paper);color:var(--navy)}.email-inquiry-note,.sms-action-note{font-size:var(--small);line-height:1.6;margin-top:14px;max-width:48ch}.sms-action-note a{text-decoration:underline;text-underline-offset:4px}
.site-footer{background:var(--navy);color:var(--white);padding-block:48px 24px}.footer-top{display:flex;justify-content:space-between;gap:40px;font-size:var(--small)}.footer-top nav{display:flex;gap:28px;align-items:start}.footer-top nav a{padding-block:10px}.footer-wordmark{font-size:clamp(60px,14.5vw,220px);font-weight:500;letter-spacing:-.04em;line-height:1.1;margin-block:40px 32px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;font-size:var(--small);color:var(--soft-ink)}.footer-policy{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:var(--small)}.footer-policy a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}.site-footer .footer-policy{margin-top:16px}
body.has-dialog{overflow:hidden}#gallery-dialog{width:min(1200px,calc(100% - 48px));max-width:none;max-height:92svh;padding:0;border:0;background:var(--paper);color:var(--ink)}#gallery-dialog::backdrop{background:rgb(7 14 20 / .8)}.gallery-shell{padding:28px}.gallery-top{display:flex;justify-content:space-between;align-items:start;gap:32px;margin-bottom:24px}.gallery-note{font-size:var(--small);margin-bottom:10px}.gallery-top h2{font-size:var(--lead);font-family:var(--text);font-weight:500;line-height:1.25;max-width:32ch}.gallery-close{display:flex;align-items:center;gap:16px;min-height:44px;padding:8px 12px;background:var(--tone)}.gallery-main{display:grid;grid-template-columns:1.7fr 1fr;gap:28px}.gallery-photo{position:relative;background:var(--tone);min-width:0}.gallery-photo>img{width:100%;height:450px;object-fit:contain;touch-action:pan-y}.gallery-arrow{position:absolute;top:calc(50% - 24px);width:48px;height:48px;background:var(--paper);color:var(--ink);transition:transform 140ms var(--ease-out)}.gallery-prev{left:12px}.gallery-next{right:12px}.gallery-info h3{font-size:var(--lead);margin-bottom:18px}.gallery-info>p{font-size:var(--small);margin-bottom:24px}.gallery-info ul{list-style:none;font-size:var(--small);display:grid;gap:8px;margin-bottom:24px}.gallery-info .button{font-size:var(--small);min-height:48px;gap:12px;padding-inline:16px}.gallery-bottom{display:flex;justify-content:space-between;gap:20px;font-size:var(--small);margin-block:20px}.gallery-thumbnails{display:flex;gap:8px;overflow-x:auto;padding:4px 4px 12px}.gallery-thumb{padding:4px;flex-shrink:0;background:transparent}.gallery-thumb[aria-pressed=true]{background:var(--navy)}.gallery-thumb img{width:66px;height:52px;object-fit:cover}
@media(hover:hover) and (pointer:fine){.button:hover{background:var(--hover)}.text-now:hover{background:var(--navy);color:var(--white)}.button:hover svg{transform:translateX(4px)}.desktop-nav a:hover,.footer-top nav a:hover{text-decoration:underline;text-underline-offset:6px}.project-image-button:hover img{transform:scale(1.025)}.project-filters button:not([aria-pressed=true]):hover{background:var(--paper)}.gallery-close:hover,.gallery-arrow:hover{background:var(--white)}}
@keyframes title-in{from{opacity:.65;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes photo-in{from{opacity:.8;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}#hero-title>span{animation:title-in 600ms var(--ease-out) both}#hero-title>span:nth-child(2){animation-delay:70ms}.hero-project{animation:photo-in 800ms var(--ease-out) both}.hero-description,.hero-actions{animation:title-in 650ms var(--ease-out) both}.count-in{display:inline-block;animation:title-in 500ms var(--ease-out) both}
@media(max-width:1100px){:root{--hero:76px;--head:42px;--gutter:36px}.hero-top{grid-template-columns:1fr 170px}.hero-bottom{grid-template-columns:1fr 1.7fr;gap:36px}.hero-copy{padding-bottom:20px}.hero-actions{gap:16px}.hero-project img{height:340px}.hero-work-link{margin-top:16px}.desktop-nav{gap:24px;margin-right:12px}.section{padding-block:88px}.service-row{gap:32px;grid-template-columns:2.7fr 4fr 1.7fr}.multifamily-scope{grid-template-columns:1fr;gap:32px}.division-list dt{margin-bottom:10px}.project-grid{gap:22px}.project-image-button img{height:290px}.project:nth-child(2) img{height:240px}.project:nth-child(3) img{height:270px}.about-layout{gap:60px}.field-film{width:260px}.contact-grid{padding:40px}.contact-email{font-size:20px}.quote-grid{gap:56px}.process-section{padding-top:0}}
@media(max-width:800px){:root{--hero:64px;--head:38px;--gutter:28px}.header-inner{min-height:80px}.desktop-nav,.header-cta{display:none}.menu-toggle{display:flex}.hero{padding-top:36px}.hero-top{grid-template-columns:1fr;gap:20px}.hero-location{padding-top:0}.hero-bottom{grid-template-columns:1fr 1.35fr;align-items:start;gap:28px}.hero-project img{height:330px}.hero-note{max-width:24ch}.hero-work-link{display:none}.experience-grid{gap:24px}.experience-grid li{align-items:start;flex-direction:column;gap:10px}.experience-grid strong{font-size:38px}.section-heading{gap:36px}.service-row{grid-template-columns:1fr 1.6fr;gap:24px}.service-row>img{display:none}.project-grid{grid-template-columns:1fr 1fr}.project:nth-child(2){padding-top:48px}.project:nth-child(3){padding-top:12px;grid-column:1/-1;width:72%;margin-left:auto}.project:nth-child(3) img{height:310px}.project-image-button img{height:280px}.project:nth-child(2) img{height:260px}.about-layout{gap:40px;grid-template-columns:1fr 240px}.field-film{width:240px}.about-figure img{height:240px}.process-list{grid-template-columns:repeat(2,1fr);gap:36px}.quote-grid{gap:36px}.faq-section{grid-template-columns:1fr;gap:36px}.contact-section{grid-template-columns:.85fr 1.15fr}.contact-grid{padding:36px 28px}.contact-email{font-size:var(--body)}.footer-top{flex-wrap:wrap}.gallery-main{grid-template-columns:1fr}.gallery-photo>img{height:360px}.gallery-info>p,.gallery-info>div{display:none}.gallery-info h3{font-size:var(--body);margin-bottom:12px}.gallery-bottom p:last-child{display:none}}
@media(max-width:540px){:root{--body:16px;--lead:24px;--head:34px;--hero:43px;--gutter:22px;scroll-padding-top:90px}.header-inner{min-height:78px}.hero{padding-block:30px 34px}.hero-top{margin-bottom:24px;gap:20px}.hero h1{font-size:var(--hero);letter-spacing:-.035em}.hero-location{font-size:var(--small)}.hero-location br{display:none}.hero-location br::after{content:' '}.hero-bottom{display:flex;flex-direction:column;gap:28px}.hero-copy{max-width:none;padding:0}.hero-description{max-width:34ch;margin-bottom:20px}.hero-actions{gap:28px}.hero-note{max-width:36ch;margin-top:14px}.hero-note br{display:none}.hero-project{width:100%}.hero-project img{height:280px;object-position:center}.hero-project figcaption{font-size:13px}.experience-grid{gap:18px;padding-block:28px}.experience-grid strong{font-size:32px}.experience-grid li>span{font-size:13px;max-width:14ch}.section{padding-block:64px}.section-heading{grid-template-columns:1fr;gap:20px;margin-bottom:32px}.service-row{grid-template-columns:1fr;gap:16px;padding-block:14px}.service-row>img{display:block;width:65%;height:185px;margin-left:auto}.services-list{gap:24px}.scope-list{margin-top:12px}.multifamily-scope{padding:28px 24px;gap:28px;margin-top:32px}.multifamily-scope>div>p{max-width:28ch;margin-top:12px}.division-list{grid-template-columns:1fr;gap:24px}.division-list dt{margin-bottom:8px}.division-list dd strong{margin-bottom:4px}.work-toolbar{align-items:start;flex-direction:column;gap:16px;margin-bottom:28px}.project-filters{gap:0}.project-filters button{padding-inline:11px}.project-grid{display:flex;flex-direction:column;gap:40px}.project{width:100%;padding:0!important;margin:0!important}.project:nth-child(2){width:86%;align-self:end}.project:nth-child(3){width:100%}.project-image-button img,.project:nth-child(2) img,.project:nth-child(3) img{height:270px}.project-meta{padding-top:18px}.project-meta p{margin-top:12px;max-width:40ch}.about-layout{grid-template-columns:1fr;gap:32px}.about-copy>p{margin-top:20px}.about-figure{margin-top:28px}.about-figure img{height:220px}.field-film{width:230px;margin-top:8px;justify-self:end}.field-film figcaption{gap:8px}.process-section{padding-top:0}.process-list{grid-template-columns:1fr;gap:28px}.process-list p{max-width:46ch;margin-top:10px}.process-section .section-heading{margin-bottom:32px}.quote-grid{grid-template-columns:1fr;gap:40px;margin-top:32px}.quote-grid blockquote{font-size:var(--body);line-height:1.8}.quote-grid figure{gap:20px}.faq details{padding:18px 20px}.faq-section{gap:28px}.faq summary{font-size:var(--body)}.contact-section{display:flex;flex-direction:column;min-height:0}.contact-image{height:340px;object-position:50% 52%}.contact-grid{padding:36px 22px 48px}.contact-email{font-size:20px}.contact-panel>p{margin-top:18px}.contact-actions{display:grid;grid-template-columns:1fr 1fr}.contact-actions .button{gap:10px;padding-inline:16px}.contact-actions .button svg{display:none}.email-checklist{margin-bottom:22px}.footer-top{display:grid;grid-template-columns:1fr 1fr;gap:28px}.footer-top nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.footer-top .back-top{grid-column:1/-1;justify-self:start}.footer-wordmark{font-size:14.5vw;margin-block:36px 28px}.footer-bottom{display:grid;gap:8px}.site-footer{padding-top:36px}#gallery-dialog{width:calc(100% - 20px);max-height:94svh}.gallery-shell{padding:16px}.gallery-top{gap:16px;margin-bottom:16px}.gallery-top h2{font-size:var(--body)}.gallery-close{font-size:var(--small);gap:8px;flex-shrink:0}.gallery-photo>img{height:280px}.gallery-main{gap:18px}.gallery-arrow{width:44px;height:44px}.gallery-prev{left:8px}.gallery-next{right:8px}.gallery-info .button{font-size:var(--small)}.gallery-bottom{margin-block:14px}.gallery-thumbnails{gap:4px}.gallery-thumb img{width:58px;height:46px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.project-image-button:hover img{transform:none}#hero-title>span,.hero-project,.hero-description,.hero-actions,.count-in{opacity:1!important;transform:none!important}}
