:root{--ink:#171817;--muted:#5f625d;--rule:#d8dad5;--sage:#778273;--paper:#f5f5f1;--gutter:clamp(22px,4.5vw,88px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:120px}body{margin:0;color:var(--ink);background:#fff;font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:6px}button{color:inherit}::selection{background:#cbd2c5}.skip-link{position:fixed;top:-100px;left:20px;background:#fff;padding:16px;z-index:20}.skip-link:focus{top:10px}.site-header{position:sticky;top:0;z-index:10;height:108px;padding:22px var(--gutter);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.97);border-bottom:1px solid var(--rule)}.wordmark{display:flex;flex-direction:column;width:max-content}.wordmark>span{font-size:34px;letter-spacing:.14em;line-height:1;font-weight:500}.wordmark small{font-size:10px;letter-spacing:.48em;margin-top:8px}.site-header nav{display:flex;gap:clamp(24px,3.5vw,60px)}nav a{font-size:12px;text-transform:uppercase;letter-spacing:.09em;padding:12px 0;border-bottom:1px solid transparent}nav a:hover{border-color:var(--ink)}.hero{position:relative;min-height:calc(100svh - 108px);min-height:max(660px,calc(100svh - 108px));padding:36px var(--gutter) 40px;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate;overflow:hidden;background:var(--paper)}.hero-drawing{position:absolute;inset:0;z-index:-1;background-position:center;background-size:cover;opacity:.5}.hero-top,.hero-bottom{display:flex;justify-content:space-between;gap:20px;font-size:12px;text-transform:uppercase;letter-spacing:.09em}.hero h1{font-size:clamp(46px,7.3vw,126px);font-weight:400;line-height:.98;letter-spacing:-.06em;margin:75px 0 100px;max-width:1050px}.bracket{color:var(--sage)}.hero-bottom{align-items:center}.hero-bottom a{display:flex;gap:35px;align-items:center}.hero-bottom a span{font-size:27px}.drawing-caption{position:absolute;right:var(--gutter);bottom:98px;color:var(--muted);font-size:12px}.section{padding:95px var(--gutter) 110px}.section-kicker{display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding-bottom:22px;border-bottom:1px solid var(--rule);color:var(--muted)}.section-title{font-size:clamp(48px,8.1vw,140px);font-weight:400;line-height:1;letter-spacing:-.065em;margin:36px 0 62px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule);border-left:1px solid var(--rule);align-items:start}.service-card{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);background:white;transition:background .25s}.service-card.is-open{background:#f0f2ed}.service-toggle{display:block;text-align:left;width:100%;border:0;background:none;padding:30px 28px 26px;cursor:pointer}.service-top{display:flex;justify-content:space-between;align-items:start}.service-number{font-size:68px;font-weight:400;line-height:1;letter-spacing:-.07em;color:var(--sage)}.service-plus{font-size:30px;font-weight:400;line-height:1;transition:transform .3s}.is-open .service-plus{transform:rotate(45deg)}.service-title{display:block;font-size:23px;letter-spacing:-.035em;line-height:1.15;margin:30px 0 14px;min-height:2.3em}.service-summary{display:block;font-size:16px;color:var(--muted);line-height:1.6;min-height:4.8em}.service-details{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease;visibility:hidden}.is-open .service-details{grid-template-rows:1fr;visibility:visible}.service-details>div{overflow:hidden}.service-details ul{padding:0 28px 27px;margin:0;list-style:none}.service-details li{border-top:1px solid var(--rule);padding:10px 0;font-size:14px;line-height:1.35}.projects{background:#f5f5f2}.project-intro{max-width:570px;margin:-20px 0 65px auto;font-size:16px;line-height:1.65;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:4vw;row-gap:55px;align-items:start}.project-card:nth-child(even){padding-top:0}.project-card:nth-child(5n){grid-column:auto;padding-top:0}.project-visual{aspect-ratio:1.4;background:#e5e7e0;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.project-card:nth-child(even) .project-visual{aspect-ratio:1.4}.project-card:nth-child(5n) .project-visual{aspect-ratio:1.4}.project-card:nth-child(3n) .project-visual{background:#d6dbd2}.project-visual>img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.project-card:hover .project-visual>img{transform:scale(1.025)}.placeholder-index{font-size:clamp(70px,11vw,180px);font-weight:400;line-height:1;color:#8a9484;letter-spacing:-.065em}.placeholder-note{position:absolute;bottom:22px;left:24px;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:#505a4c}.project-meta{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-top:22px}.project-meta h3{font-size:clamp(24px,2.6vw,40px);font-weight:400;letter-spacing:-.04em;line-height:1.1;margin:0}.project-meta>span{font-size:12px;white-space:nowrap;color:var(--muted)}.project-type{font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:12px 0 20px;color:var(--muted)}.project-credit{font-size:13px;color:var(--muted);line-height:1.5;border-top:1px solid #c8cdc3;padding-top:13px;margin:0}.about-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:12vw}.about-lead{font-size:clamp(26px,3.2vw,49px);line-height:1.15;letter-spacing:-.04em;margin:0 0 30px}.about-body{font-size:18px;line-height:1.7;color:var(--muted);max-width:650px}.credential{padding:0 0 30px;margin:0 0 30px;border-bottom:1px solid var(--rule)}.credential strong{display:block;font-size:clamp(35px,5vw,74px);font-weight:400;letter-spacing:-.04em;line-height:1}.credential:first-child strong{font-size:clamp(76px,9vw,132px)}.credential span{display:block;margin-top:14px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.contact{background:#e8ebe4}.contact .section-kicker{border-color:#bdc5b8}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw}.contact-statement{font-size:clamp(28px,3.6vw,52px);line-height:1.15;letter-spacing:-.035em;margin:0 0 45px}.contact-person{font-size:16px;line-height:1.7}.contact-person span{color:var(--muted)}.email-link{display:inline-block;border-bottom:1px solid var(--ink);padding-bottom:6px;font-size:18px;margin-top:8px;overflow-wrap:anywhere}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px 25px}label{font-size:14px;line-height:1.5}label>span{color:var(--muted)}input,textarea{width:100%;display:block;margin-top:10px;border:0;border-bottom:1px solid #909b89;background:transparent;padding:9px 0;font-size:16px;line-height:1.5;border-radius:0}textarea{resize:vertical;min-height:100px}.full{grid-column:1/-1}.form-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:25px}.form-bottom p{font-size:12px;line-height:1.6;color:#525b4d}.submit-button{background:var(--ink);color:white;border:1px solid var(--ink);padding:17px 22px;cursor:pointer;display:flex;gap:22px;align-items:center;font-size:14px;white-space:nowrap}.submit-button:hover{background:#384132}#form-status{font-size:14px;line-height:1.5}footer{display:flex;justify-content:space-between;gap:25px;padding:38px var(--gutter);font-size:12px;color:var(--muted)}footer a{color:var(--ink);letter-spacing:.08em}
.hero-drawing img{width:100%;height:100%;object-fit:cover;object-position:center}.project-description{font-size:16px;line-height:1.65;color:var(--muted)}
@media(min-width:1800px){.section,.site-header{padding-left:max(var(--gutter),calc((100vw - 1650px)/2));padding-right:max(var(--gutter),calc((100vw - 1650px)/2))}}
@media(max-width:1050px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section{padding-top:70px;padding-bottom:80px}.service-summary{min-height:4.8em}.project-grid{column-gap:5vw;row-gap:55px}.project-meta{display:block}.project-meta>span{display:block;margin-top:10px}.about-grid{gap:7vw}.contact-grid{gap:6vw}.form-bottom{align-items:start;flex-direction:column}.hero h1{font-size:9vw}}
@media(max-width:650px){html{scroll-padding-top:120px}.site-header{height:112px;display:block;padding-top:17px;padding-bottom:10px}.wordmark>span{font-size:25px}.wordmark small{font-size:8px;letter-spacing:.37em;margin-top:5px}.site-header nav{justify-content:space-between;gap:12px;margin-top:9px}nav a{font-size:11px;padding:8px 0}.hero{min-height:620px;min-height:max(580px,calc(100svh - 112px));padding-top:26px;padding-bottom:27px}.hero-top{font-size:10px;line-height:1.5}.hero-top span{max-width:145px}.hero-top span:last-child{text-align:right}.hero h1{font-size:12.2vw;line-height:1.05;letter-spacing:-.065em;margin:100px 0 110px}.hero-bottom{align-items:end;font-size:10px;line-height:1.6}.hero-bottom>span{max-width:150px}.hero-bottom a{gap:12px}.drawing-caption{bottom:86px;font-size:10px}.section{padding-top:54px;padding-bottom:60px}.section-kicker{font-size:10px;line-height:1.5;padding-bottom:18px}.section-kicker span:last-child{text-align:right;max-width:150px}.section-title{font-size:11.4vw;margin:27px 0 38px}.service-grid{grid-template-columns:1fr}.service-toggle{padding:25px}.service-number{font-size:61px}.service-title{margin-top:20px;min-height:0;font-size:24px}.service-summary{min-height:0}.service-details ul{padding-left:25px;padding-right:25px}.project-intro{margin:0 0 35px;font-size:15px}.project-grid{grid-template-columns:1fr;gap:38px}.project-card:nth-child(even){padding-top:0}.project-card:nth-child(5n){grid-column:auto}.project-card:nth-child(n) .project-visual{aspect-ratio:1.2}.placeholder-index{font-size:100px}.project-meta{margin-top:17px}.project-meta h3{font-size:28px}.project-type{margin:10px 0 14px}.about-grid,.contact-grid{grid-template-columns:1fr;gap:40px}.about-lead{font-size:31px}.about-body{font-size:17px}.credential{margin-bottom:25px;padding-bottom:25px}.credential strong{font-size:40px}.credential:first-child strong{font-size:90px}.contact-statement{font-size:34px;margin-bottom:30px}.form-grid{gap:25px 20px}.form-bottom{flex-direction:column-reverse;align-items:stretch}.submit-button{justify-content:space-between}footer{flex-direction:column;gap:14px;padding-top:30px;padding-bottom:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

.hero-bottom{justify-content:flex-end}.prior-experience-intro{display:grid;grid-template-columns:1fr 1fr;gap:4vw;margin-bottom:38px}.prior-experience-intro h3{font-size:clamp(26px,3vw,40px);font-weight:400;letter-spacing:-.035em;margin:0}.prior-experience-intro .project-intro{margin:0;max-width:570px}.section-kicker>span:first-child{text-align:left;max-width:none}@media(max-width:650px){.hero-top span{max-width:none}.hero-top span:last-child{text-align:left}.prior-experience-intro{grid-template-columns:1fr;gap:16px;margin-bottom:30px}}

/* Portfolio hierarchy and quieter closing details. */
.hero{padding-bottom:16px}.drawing-caption{bottom:68px}.prior-experience-intro{margin-top:85px;padding-top:35px;border-top:1px solid var(--rule)}.prior-grid .placeholder-index{font-size:clamp(60px,8vw,110px)}.prior-grid .project-meta h3{font-size:clamp(23px,2.1vw,32px)}footer{justify-content:center;text-align:center}@media(max-width:650px){.hero{padding-bottom:12px}.drawing-caption{bottom:58px}.prior-experience-intro{margin-top:55px}.prior-grid .placeholder-index{font-size:80px}}

.contact-identity{display:flex;align-items:center;gap:17px}.contact-identity .contact-person{margin:0}.contact-symbol{display:block;flex:0 0 48px;width:48px;height:35px;overflow:hidden;mix-blend-mode:multiply}.contact-symbol img{display:block;width:48px;height:auto;max-width:none}.contact-identity+.email-link{margin-top:24px}.real-estate-contact{font-size:14px;line-height:1.6;margin-top:20px;color:var(--muted)}.real-estate-contact a{border-bottom:1px solid var(--sage);padding-bottom:3px}.real-estate-contact span{display:block;margin-top:8px}

.email-app-button{display:flex;width:max-content;align-items:center;gap:25px;border:1px solid var(--ink);padding:12px 17px;font-size:14px;margin-top:22px}.email-app-button:hover{background:var(--ink);color:white}.project-meta{display:block}.project-meta>span{display:block;margin-top:10px}

.project-visual:has(img){background:#fff}.project-visual>img{object-fit:contain}.project-card:hover .project-visual>img{transform:none}

.credential strong sup{font-size:.35em;vertical-align:super;line-height:0}.credential:last-child strong{font-size:clamp(28px,3.5vw,54px)}

/* A common widescreen frame preserves exterior width; individual focal points guide interior crops. */
.project-card:nth-child(n) .project-visual{aspect-ratio:16/9}.project-visual>img{object-fit:cover}

/* Phillip Rowhomes hero study: muted original image over a sage field. */
.hero{background:#f6f8f3;min-height:max(660px,calc(100svh - 108px))}.hero-drawing{opacity:.22;mix-blend-mode:multiply}.hero-drawing img{filter:grayscale(1) contrast(.7) brightness(1.18);object-position:50% 62%}.hero h1{white-space:pre-line;font-size:clamp(54px,7.8vw,122px);line-height:1.02;letter-spacing:-.055em;max-width:1100px;margin:95px 0 130px}.hero-sample-note{position:absolute;left:var(--gutter);bottom:23px;font-size:12px;color:#3e4839}.hero-bottom{position:relative}@media(max-width:650px){.hero{min-height:max(580px,calc(100svh - 112px))}.hero h1{font-size:clamp(38px,10.5vw,67px);margin:110px 0 160px}.hero-drawing img{object-position:50% 60%}.hero-sample-note{bottom:61px;font-size:11px}}

.project-visual.full-image{background:#e9e9e5}.project-card:hover .full-image>img{transform:none}

.photo-credit{font-size:12px;line-height:1.5;color:var(--muted)}.photo-credit a{text-decoration:underline;text-underline-offset:3px}

.hero{background:#fafcf8}.hero-drawing{opacity:.17;mix-blend-mode:multiply}.hero-drawing img{object-fit:cover;object-position:50% 62%;filter:grayscale(1) contrast(.82) brightness(1.1)}@media(max-width:650px){.hero-drawing img{object-position:50% 60%}}

/* Final presentation: quieter headings and consistent credential scale. */
.section-title{font-size:clamp(44px,7vw,120px)}.credential strong,.credential:first-child strong,.credential:last-child strong{font-size:clamp(28px,3.5vw,54px)}.prior-experience-intro{display:block}@media(max-width:650px){.section-title{font-size:10vw}.credential strong,.credential:first-child strong,.credential:last-child strong{font-size:34px}}

/* Two-point reduction, preserving responsive type scales. */
.hero h1{font-size:calc(clamp(54px,7.8vw,122px) - 2pt)}.section-title{font-size:calc(clamp(44px,7vw,120px) - 2pt)}@media(max-width:650px){.hero h1{font-size:calc(clamp(38px,10.5vw,67px) - 2pt)}.section-title{font-size:calc(10vw - 2pt)}}

/* Align the descriptor with the visible wordmark width. */
.wordmark small{display:flex;justify-content:space-between;font-size:12px;letter-spacing:0;margin-right:4.76px;line-height:1.2}@media(max-width:650px){.wordmark small{font-size:9.5px;letter-spacing:0;margin-right:3.5px}}
/* SEO copy follows the existing typography and card layout. */
.section-title{font-size:calc(clamp(44px,7vw,120px) - 2pt - 2px)}
.service-heading{margin:0;font-size:inherit;font-weight:inherit}.service-toggle{padding-bottom:0}.service-title{margin-bottom:14px}.service-card>.service-summary{margin:0;padding:0 28px 26px;min-height:calc(4.8em + 26px)}
.services-intro{max-width:760px;font-size:16px;line-height:1.65;color:var(--muted);margin:-24px 0 40px}.services-intro a{text-decoration:underline;text-underline-offset:4px}
.service-sectors{margin-top:70px}.service-sectors>h2{font-size:32px;font-weight:400;letter-spacing:-.035em}.sector-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 4vw;margin-bottom:60px}.sector-grid h3{font-size:23px;font-weight:400;letter-spacing:-.035em}.sector-grid p{font-size:16px;line-height:1.65;color:var(--muted)}
.project-visual .phillip-thumbnail{opacity:1;filter:contrast(1.06) saturate(1.12);mix-blend-mode:normal}
@media(max-width:650px){.section-title{font-size:calc(10vw - 2pt - 2px)}.service-card>.service-summary{padding:0 25px 26px;min-height:0}.sector-grid{grid-template-columns:1fr}.services-intro{margin-top:-12px}}

/* Understated research section, matching the existing editorial typography. */
.tools{padding-top:0}.tools-inner{border-top:1px solid var(--rule);padding-top:38px}.tools h2{font-size:clamp(26px,3vw,40px);font-weight:400;letter-spacing:-.035em;line-height:1.1;margin:0 0 24px}.tools-intro{max-width:760px;font-size:18px;line-height:1.7;color:var(--muted);margin:0 0 36px}.tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 4vw;max-width:1100px}.tools-grid h3{font-size:23px;line-height:1.2;font-weight:400;letter-spacing:-.035em;margin:0 0 10px}.tools-grid p{font-size:16px;line-height:1.65;color:var(--muted);margin:0;max-width:480px}.tools-note{font-size:12px;line-height:1.6;color:var(--muted);margin:32px 0 0}@media(max-width:650px){.tools-inner{padding-top:28px}.tools-intro{font-size:17px}.tools-grid{grid-template-columns:1fr;gap:26px}}

.about-tools-link{margin:28px 0 0;font-size:14px;line-height:1.6;color:var(--muted)}.about-tools-link a{border-bottom:1px solid var(--rule);padding-bottom:4px}.about-tools-link a:hover{border-color:var(--ink)}.about-tools-link span{margin-left:10px}

/* Vector arrows render consistently across desktop and mobile platforms. */
.text-arrow{display:inline-block;vertical-align:middle;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:square;stroke-linejoin:miter}.about-tools-link .text-arrow{margin-left:10px}

/* Image credits sit with their images, apart from project information. */
.photo-credit{font-size:12px;line-height:1.4;margin:7px 0 0;text-align:right}.photo-credit a{text-decoration:none}.photo-credit a:hover{text-decoration:underline;text-underline-offset:3px}
