:root{--paper:#f6f5f1;--ink:#242725;--muted:#626660;--line:#d8d9d1;--red:#c92424;--white:#fff;--display:Georgia,'Times New Roman',serif;--body:'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}body.dialog-open{overflow:hidden}img{display:block;max-width:100%}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,dialog:focus-visible{outline:3px solid var(--red);outline-offset:5px}::selection{background:#ebc7bd}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;line-height:1.6;margin:0 0 20px}.red-square{display:inline-block;width:7px;height:7px;background:var(--red);margin-right:9px;vertical-align:2px}.skip-link{position:fixed;top:-100px;left:20px;padding:10px 20px;background:var(--ink);color:white;z-index:100}.skip-link:focus{top:15px}.site-header{display:flex;align-items:center;justify-content:space-between;padding-block:30px;border-bottom:1px solid var(--line);gap:20px}.wordmark{font-weight:650;font-size:20px;letter-spacing:-.045em;white-space:nowrap;display:flex;align-items:center;gap:10px}.brand-line{display:inline-block;width:4px;height:23px;background:var(--red)}.wordmark-dot{color:var(--red);margin-left:-9px}#site-nav{display:flex;gap:30px;align-items:center;font-size:13px}#site-nav a{padding-block:5px}#site-nav a:hover{color:var(--red)}#site-nav .nav-contact{margin-left:20px;border-bottom:1px solid var(--ink)}.nav-contact span{padding-left:14px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr 1.18fr;gap:60px;padding-block:78px 62px;align-items:center}.hero h1{font-family:var(--display);font-size:clamp(47px,4.6vw,69px);font-weight:400;line-height:1.08;letter-spacing:-.055em;margin:0 0 28px}.hero h1 em{font-weight:400;color:#757970}.hero-intro{font-size:15px;max-width:410px;line-height:1.8;margin:0 0 29px}.text-link{font-size:13px;font-weight:600;border-bottom:1px solid currentColor;display:inline-flex;align-items:center;gap:26px;padding-bottom:7px;line-height:1.5}.text-link:hover{color:var(--red)}.text-link span{font-size:20px;font-weight:400;line-height:1}.hero-location{font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin:46px 0 0;color:var(--muted)}.hero-work{margin:0;min-width:0}.hero-image-button{display:block;padding:0;border:0;background:#e8e4dc;position:relative;width:100%;overflow:hidden}.hero-image-button img{width:100%;height:auto;aspect-ratio:1.28;object-fit:contain;transition:transform .5s ease}.hero-image-button:hover img{transform:scale(1.025)}.image-action{position:absolute;right:20px;bottom:19px;background:var(--paper);font-size:11px;padding:9px 13px;display:flex;gap:24px;align-items:center}.image-action span{font-size:18px}.hero-work figcaption{display:flex;justify-content:space-between;gap:20px;margin-top:16px;font-size:11px;line-height:1.55}.hero-work figcaption>span:first-child{max-width:65%}.hero-work figcaption .eyebrow{font-size:9px;display:block;margin:0 0 4px;color:var(--muted)}#hero-project-title{display:block;font-weight:600}.hero-project-meta{font-size:10px;text-align:right;max-width:135px;color:var(--muted)}.intro-band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:27px;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:40px}.intro-band>p{font-family:var(--display);font-size:24px;line-height:1.35;margin:0}.intro-band>div{display:flex;gap:23px;align-items:center}.intro-band>div>span{font-family:var(--display);font-size:38px;letter-spacing:-.05em;white-space:nowrap}.intro-band>div p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}.section{padding-block:94px}.section-heading{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:38px}.section-heading h2,.practice-intro h2{font-family:var(--display);font-size:clamp(34px,3.2vw,48px);font-weight:400;line-height:1.14;letter-spacing:-.045em;margin:0}.section-heading>.eyebrow{margin:0}.section-heading>p{font-size:12px;color:var(--muted);margin:0 0 3px;text-align:right}.section-heading .eyebrow{margin-bottom:17px}.red-dot{color:var(--red)}.work-toolbar{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0 26px;gap:25px}.work-toolbar>p{font-size:12px;color:var(--muted);margin:0}.filters{display:flex;gap:24px}.filters button{border:0;padding:4px 0;background:transparent;font-size:12px;white-space:nowrap;border-bottom:1px solid transparent}.filters button:hover{color:var(--red)}.filters button.is-active{border-color:var(--red);color:var(--red)}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px 32px}.project-card{border:0;background:none;padding:0;text-align:left;display:block;min-width:0}.project-card__visual{display:block;position:relative;overflow:hidden;background:#eeede8;aspect-ratio:1.49;border:1px solid #e3e3dc}.project-card__visual img{width:100%;height:100%;object-fit:contain;transition:transform .5s ease}.project-card:hover .project-card__visual img{transform:scale(1.035)}.project-card__number{position:absolute;left:14px;top:14px;width:28px;height:28px;display:grid;place-items:center;font-size:10px;background:var(--paper);color:var(--ink)}.project-card__body{display:block;padding-top:17px}.project-card__eyebrow{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.project-card__title{font-family:var(--display);font-size:26px;font-weight:400;line-height:1.2;letter-spacing:-.025em;margin:0 0 8px}.project-card__title:after{content:'↗';font-family:var(--body);font-size:18px;margin-left:14px;color:var(--red)}.project-card__meta{font-size:11px;color:var(--muted);margin:0}.work-status{font-size:11px;color:var(--muted);margin:24px 0 0}.work-empty{grid-column:1/-1;font-size:14px;padding:30px;border:1px solid var(--line)}.practice-section{background:#eaece5}.practice-grid{display:grid;grid-template-columns:.85fr 1fr;gap:115px}.practice-intro .section-lead{max-width:410px;font-size:15px;margin:25px 0 22px;line-height:1.8}.company-logo{width:280px;max-width:100%;aspect-ratio:3.3;background:white;overflow:hidden;margin:28px 0 20px}.company-logo img{width:100%;height:100%;object-fit:cover}.credential-line{font-size:11px;line-height:1.9;margin:0 0 27px;color:#555b51}.services article{display:grid;grid-template-columns:32px 1fr;gap:18px;border-top:1px solid #c7cbc0;padding:24px 0}.service-number{font-size:10px;color:var(--red);padding-top:7px}.services h3{font-family:var(--display);font-size:29px;font-weight:400;letter-spacing:-.025em;margin:0 0 9px;line-height:1.2}.services article p{font-size:13px;line-height:1.85;color:#565c52;max-width:405px;margin:0}.service-footnote{border-top:1px solid #c7cbc0;margin:0;padding-top:19px;font-size:10px;color:#565c52}.about-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:90px;padding-top:10px}.portrait{margin:0}.portrait img{width:260px;height:auto;aspect-ratio:auto;object-fit:contain}.portrait figcaption{font-size:12px;margin-top:16px;line-height:1.7}.portrait figcaption span{font-size:10px;color:var(--muted)}.about-copy{max-width:690px}.about-copy p{font-size:14px;line-height:1.85;margin:0 0 20px;color:#5d635a}.about-copy .about-lead{font-family:var(--display);font-size:29px;line-height:1.35;color:var(--ink);letter-spacing:-.025em;margin:0 0 23px}.about-copy .text-link{margin-top:10px}.education-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:90px;border-top:1px solid var(--line);margin-top:68px;padding-top:38px}.education-note{max-width:230px;font-size:13px;color:var(--muted)}.education-list article{display:flex;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line);padding-bottom:19px;margin-bottom:20px}.education-list h3{font-size:14px;font-weight:600;margin:0 0 3px;line-height:1.5}.education-list article p{font-size:11px;color:var(--muted);margin:0}.education-list .study-status{text-align:right;min-width:86px}.study-status span{font-size:10px;color:var(--red)}.tools-row{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:20px;padding-top:26px;border-top:1px solid var(--line)}.tools-row .eyebrow{margin:0}.tools-row p{font-size:13px;margin:0}.tools-row p>span{color:#8b9085;margin-inline:15px}.tools-row p>.learning-tool{margin:0;color:var(--muted);font-size:11px}.contact-section{background:var(--ink);color:var(--paper);padding-block:64px 74px}.contact-section>.wrap>.eyebrow{color:#b9beb2}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:end}.contact-grid h2{font-family:var(--display);font-size:clamp(48px,6vw,85px);letter-spacing:-.055em;line-height:1.03;font-weight:400;margin:0}.contact-grid h2 span{color:#f16c5d}.contact-grid>div>p{font-size:14px;max-width:430px;line-height:1.8;margin:0 0 25px;color:#d1d4ca}.contact-button{display:flex;justify-content:space-between;align-items:center;gap:35px;width:fit-content;background:var(--paper);color:var(--ink);font-size:14px;padding:15px 22px;transition:background .2s}.contact-button span{font-size:22px;line-height:1}.contact-button:hover{background:#e5e7dc}.contact-grid>div>.contact-small{font-size:10px;color:#a8afa0;margin:20px 0 0}.site-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;padding-block:26px;font-size:10px;color:var(--muted)}.site-footer p{margin:0}.site-footer>div{display:flex;gap:35px;align-items:center}.site-footer button{padding:0;border:0;background:none;font-size:10px}.site-footer button:hover,.site-footer a:hover{color:var(--red)}#copy-status:empty{display:none}#copy-status{width:100%;text-align:right;color:var(--red);font-size:11px}.project-dialog{width:min(1060px,calc(100% - 48px));max-height:92dvh;padding:30px 38px 24px;border:0;background:var(--paper);color:var(--ink);overflow-y:auto}.project-dialog::backdrop{background:rgba(15,18,14,.8);backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-top .eyebrow{margin:0;color:var(--red)}#dialog-close{border:0;background:none;font-size:12px;padding:5px;display:flex;gap:22px;align-items:center}#dialog-close span{font-size:26px;line-height:1}.dialog-heading h2{font-family:var(--display);font-size:37px;font-weight:400;line-height:1.15;letter-spacing:-.035em;margin:0 0 15px}.dialog-heading .eyebrow{font-size:10px;color:var(--muted);margin-bottom:10px}#dialog-description{font-size:13px;line-height:1.75;max-width:760px;margin:0 0 24px;color:var(--muted)}.dialog-figure{margin:0}.dialog-figure>img{width:100%;height:min(48dvh,510px);object-fit:contain;background:#eaeae4}#dialog-caption{font-size:11px;color:var(--muted);margin:10px 0 15px}.dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px}#dialog-thumbnails{display:flex;gap:9px}.dialog-thumbnail{border:1px solid transparent;padding:3px;background:none;width:74px;height:50px}.dialog-thumbnail img{width:100%;height:100%;object-fit:contain}.dialog-thumbnail.is-current{border-color:var(--red)}.dialog-navigation{display:flex;gap:19px;align-items:center}.dialog-navigation button{border:1px solid var(--line);background:none;width:37px;height:35px;font-size:20px}.dialog-navigation button:hover{border-color:var(--ink)}#dialog-counter{font-size:11px;min-width:36px;text-align:center}
@media(min-width:1600px){.hero{padding-block:90px}.hero h1{font-size:72px}}
@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.hero{gap:35px}.hero h1{font-size:49px}.hero-intro{font-size:14px}.intro-band{gap:25px}.intro-band>p{font-size:20px}.intro-band>div{gap:16px}.intro-band>div>span{font-size:33px}.intro-band>div p{font-size:11px}.practice-grid{gap:60px}.about-grid,.education-grid{gap:60px}.hero-work figcaption{display:block}.hero-project-meta{display:block;text-align:left;max-width:none;margin-top:8px}.hero-work figcaption>span:first-child{max-width:none}.contact-grid{gap:60px}}
@media(max-width:800px){.wrap{width:calc(100% - 44px)}.site-header{padding-block:22px}.wordmark{font-size:19px}#site-nav{gap:20px;font-size:12px}#site-nav .nav-contact{margin-left:0}.hero{grid-template-columns:1fr 1fr;padding-top:55px;gap:25px}.hero h1{font-size:40px}.hero .eyebrow{font-size:9px;letter-spacing:.09em}.hero-intro{font-size:13px}.hero-location{margin-top:30px;font-size:9px}.hero-image-button img{aspect-ratio:.9}.image-action{right:12px;bottom:12px;font-size:10px;padding:6px 10px}.intro-band{grid-template-columns:1fr 1fr}.intro-band>a{display:none}.section{padding-block:68px}.section-heading h2,.practice-intro h2{font-size:36px}.work-toolbar{display:block}.filters{margin-top:15px}.work-grid{gap:30px 23px}.project-card__title{font-size:23px}.practice-grid{gap:35px}.services h3{font-size:25px}.practice-intro .section-lead{font-size:14px}.about-grid,.education-grid{grid-template-columns:.65fr 1.35fr;gap:35px}.portrait img{width:210px}.about-copy .about-lead{font-size:26px}.about-copy p{font-size:13px}.education-list h3{font-size:12px}.education-list article{gap:15px}.tools-row{align-items:flex-start}.tools-row p{font-size:12px;max-width:65%;text-align:right}.tools-row p>span{margin-inline:8px}.contact-grid{gap:35px}.contact-grid h2{font-size:58px}.contact-grid>div>p{font-size:13px}}
@media(max-width:620px){html{scroll-padding-top:20px}.wrap{width:calc(100% - 40px)}.site-header{position:relative;z-index:5;padding-block:20px}.menu-toggle{display:flex;gap:12px;align-items:center;border:0;background:none;padding:5px 0;font-size:12px}.menu-toggle span{font-size:16px}#site-nav{display:none;position:absolute;left:-20px;right:-20px;top:100%;padding:15px 25px 24px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 15px 15px #2427250a}#site-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:7px}#site-nav a{padding:10px 0}#site-nav .nav-contact{border-bottom:0}.hero{grid-template-columns:1fr;gap:32px;padding:43px 0 36px}.hero .eyebrow{font-size:10px;letter-spacing:.12em;margin-bottom:20px}.hero h1{font-size:clamp(43px,10.7vw,62px);letter-spacing:-.055em;max-width:500px;margin-bottom:23px}.hero-intro{font-size:14px;max-width:440px;margin-bottom:25px}.hero-location{font-size:9px;letter-spacing:.1em;margin:26px 0 0}.hero-image-button img{aspect-ratio:1.3}.hero-work figcaption{display:flex;gap:15px;font-size:10px;margin-top:13px}.hero-work figcaption>span:first-child{max-width:65%}.hero-work figcaption .eyebrow{font-size:8px;margin-bottom:4px}.hero-project-meta{font-size:9px;margin-top:0;max-width:95px;text-align:right}.intro-band{gap:20px;padding-block:22px}.intro-band>p{font-size:19px}.intro-band>div{display:block}.intro-band>div>span{font-size:30px;line-height:1}.intro-band>div p{font-size:10px;margin-top:7px}.section{padding-block:54px}.section-heading{display:block;margin-bottom:25px}.section-heading h2,.practice-intro h2{font-size:35px;max-width:360px}.section-heading>p{margin-top:16px;text-align:left;font-size:11px}.section-heading .eyebrow{font-size:10px;margin-bottom:13px}.work-toolbar{padding:17px 0 23px}.work-toolbar>p{font-size:11px}.filters{gap:24px;margin-top:17px}.filters button{font-size:11px}.work-grid{grid-template-columns:1fr;gap:30px}.project-card__visual{aspect-ratio:1.48}.project-card__title{font-size:26px}.project-card__body{padding-top:14px}.project-card__meta{font-size:11px}.practice-grid{grid-template-columns:1fr;gap:37px}.practice-intro .section-lead{max-width:100%;font-size:14px}.company-logo{width:260px;margin-top:24px}.credential-line{margin-bottom:22px}.services article{padding-block:21px}.services h3{font-size:26px}.services article p{font-size:13px}.about-grid{grid-template-columns:1fr;gap:29px;padding-top:0}.portrait{display:flex;gap:19px;align-items:flex-end}.portrait img{width:135px}.portrait figcaption{margin:0;font-size:12px;padding-bottom:3px}.portrait figcaption span{font-size:10px}.about-copy .about-lead{font-size:28px;line-height:1.3}.about-copy p{font-size:14px}.education-grid{grid-template-columns:1fr;gap:18px;margin-top:38px;padding-top:27px}.education-note{max-width:none;margin-bottom:9px}.education-grid .eyebrow{margin-bottom:10px;font-size:10px}.education-list h3{font-size:13px}.education-list article p{font-size:11px}.education-list .study-status{min-width:78px;font-size:10px}.tools-row{display:block;margin-top:10px;padding-top:22px}.tools-row p{max-width:100%;text-align:left;font-size:12px;margin-top:11px;line-height:2.1}.tools-row .eyebrow{font-size:10px}.tools-row p>span{margin-inline:8px}.contact-section{padding-block:44px 48px}.contact-section .eyebrow{font-size:10px;margin-bottom:23px}.contact-grid{grid-template-columns:1fr;gap:27px}.contact-grid h2{font-size:62px;letter-spacing:-.055em}.contact-grid>div>p{max-width:100%;font-size:14px}.contact-button{font-size:13px;padding:14px 20px}.contact-grid>div>.contact-small{font-size:9px}.site-footer{font-size:9px;padding-block:23px;gap:17px}.site-footer>div{gap:20px}.site-footer button{font-size:9px}.project-dialog{width:calc(100% - 24px);max-height:94dvh;padding:19px 17px}.dialog-heading h2{font-size:28px}.dialog-heading .eyebrow{font-size:9px}#dialog-description{font-size:12px;line-height:1.65;margin-bottom:18px}.dialog-figure>img{height:35dvh}#dialog-caption{font-size:10px}.dialog-navigation{gap:11px}.dialog-navigation button{width:31px;height:32px}.dialog-thumbnail{width:57px;height:42px}.dialog-bottom{gap:12px}#dialog-counter{font-size:10px}.dialog-top{margin-bottom:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.project-card__title,.project-card__meta{display:block}
/* Construction work gallery */
.field-section{border-bottom:1px solid var(--line)}
.field-toolbar{align-items:flex-start;flex-wrap:wrap}
.field-toolbar>p{padding-top:4px}
.field-filters{flex-wrap:wrap;justify-content:flex-end;gap:10px 24px;max-width:100%;margin-top:0}
.field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px}
.field-grid .project-card__visual{aspect-ratio:4/3}
.field-grid .project-card__visual img{object-fit:cover}
.field-grid .project-card__title,.field-grid .project-card__meta{display:block}
.field-grid .project-card__body{padding-top:12px}
.field-grid .project-card__eyebrow{font-size:10px;line-height:1.5;margin-bottom:5px}
.field-grid .project-card__title{font-size:22px;line-height:1.25;margin-bottom:6px}
.field-grid .project-card__meta{font-size:11px;line-height:1.5}
@media(max-width:1100px){.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.field-filters{justify-content:flex-start;margin-top:15px}.field-grid{gap:28px 22px}.field-grid .project-card__title{font-size:20px}}
@media(max-width:760px){.site-header{position:relative;z-index:5;padding-block:20px}.menu-toggle{display:flex;gap:12px;align-items:center;border:0;background:none;padding:5px 0;font-size:12px}.menu-toggle span{font-size:16px}#site-nav{display:none;position:absolute;left:calc((100% - 100vw)/2);right:calc((100% - 100vw)/2);top:100%;padding:15px 25px 24px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 15px 15px #2427250a}#site-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:7px}#site-nav a{padding:10px 0}#site-nav .nav-contact{margin-left:0;border-bottom:0}}
@media(max-width:620px){.field-toolbar>p{padding-top:0}.field-filters{gap:10px 22px;margin-top:17px}.field-grid{grid-template-columns:minmax(0,1fr);gap:24px 16px}.field-grid .project-card__body{padding-top:10px}.field-grid .project-card__title{font-size:16px;line-height:1.3}.field-grid .project-card__title:after{font-size:14px;margin-left:7px}.field-grid .project-card__number{left:9px;top:9px;width:22px;height:22px;font-size:9px}}
@media(min-width:380px) and (max-width:620px){.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Shared project viewer: allow larger photo groups to wrap. */
#dialog-thumbnails{min-width:0;flex:1 1 auto;flex-wrap:wrap}
.dialog-thumbnail{flex:0 0 74px}
.dialog-navigation{flex:0 0 auto;white-space:nowrap}
@media(max-width:620px){.dialog-bottom{flex-direction:column;align-items:stretch}#dialog-thumbnails{width:100%;flex:none}.dialog-thumbnail{flex-basis:57px}.dialog-navigation{align-self:flex-end}}
