/* The opening composition: one signature, one photographic horizon. */
@font-face{font-family:"Inter Tight";src:url("/assets/fonts/InterTight-Regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Inter Tight";src:url("/assets/fonts/InterTight-Medium.woff") format("woff");font-weight:500;font-style:normal;font-display:swap}
/* An explicit root canvas prevents the body navy from filling space after the page. */
html{height:auto;min-height:0;background:#fff}
body{display:flow-root;height:auto;min-height:0;margin:0;padding:0;background:var(--navy);font-family:"Inter Tight",Arial,Helvetica,sans-serif}
.page-shell{width:min(1224px,calc(100% - 96px))}
.masthead{padding:18px 0 17px;gap:35px;border-bottom:0}
.ad-brand{width:550px;flex-basis:550px}
.masthead-right{gap:11px;padding-top:12px}
.header-phone{font-size:11px;letter-spacing:.09em;color:#b5c1c8}
nav{font-size:12px;gap:27px;letter-spacing:.015em}
nav a{gap:15px}
nav a:not(:last-child):hover{text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}
.gallery-cover{border-top:1px solid #aab7bf4d}
.cover-title-row{align-items:center;padding:23px 0 24px;margin:0;gap:30px}
.title-group{min-width:0}
h1{font-size:48px;font-weight:400;line-height:1.04;letter-spacing:-.047em;white-space:nowrap;max-width:none}
.title-period{color:#d4c8a9}
.practice-line{margin-top:11px;color:#aab8c1;font-size:11px;line-height:1.5;letter-spacing:.01em}
.practice-line>span{margin:0 11px;color:#6d7d89}
.cover-intro{display:flex;align-items:center;gap:44px;padding:0}
.cover-intro p{font-size:26px;line-height:1.2;color:#d9d7cb;letter-spacing:-.035em}
.inquiry-link{font-family:"Inter Tight",Arial,sans-serif;min-height:44px;margin:0;gap:27px;border-bottom:1px solid #b3aa9180;font-size:11px;color:#eadbbb}
.project-composition{grid-template-columns:minmax(0,1.775770457fr) minmax(0,1fr) minmax(0,.75fr);gap:16px;align-items:start}
.project,.project-featured,.project-medical,.project-residential{margin:0;width:100%;position:static;grid-column:auto;grid-row:auto}
.project .image-link{background:none;outline-offset:5px;overflow:visible}
.project .image-link img{max-height:none;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.image-open{width:30px;height:30px;bottom:11px;right:11px;background:#111e2ae0;border-color:#dce2df66;font-size:17px}
.project figcaption{display:flex;align-items:center;justify-content:space-between;min-height:39px;margin:0;padding:5px 0 0;gap:16px;color:#dee5e8;font-size:12px;line-height:1.4}
.caption-label{display:flex;align-items:baseline;gap:14px}
.project-no{font-size:10px;letter-spacing:.025em;color:#afbdc6}
.caption-arrow{font-size:15px;color:#c1c5bc}
.practice-network{margin-top:20px;border-top:1px solid #aab7bf4d;padding:16px 0 20px}
.section-heading{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:22px;align-items:center}
.section-heading .eyebrow{grid-column:auto;letter-spacing:.13em;font-size:9px;color:#b0bdc5}
.section-heading h2{font-family:"Inter Tight",Arial,sans-serif;font-size:18px;line-height:1.3;letter-spacing:-.025em;font-weight:400;color:#dfdfd6}
.section-heading>a{justify-self:end;min-height:30px;gap:20px;font-size:10px;color:#bdc7cd}
.ad-affiliate-row{gap:5.3%;margin:16px 0 0;align-items:center}
.ad-affiliate-row li{min-width:0}
.ad-affiliate-link{opacity:.96}
.ad-affiliate-link:hover,.ad-affiliate-link:focus-visible{opacity:1;filter:brightness(1.08)}
.footer{padding-top:8px}
.footer-top{padding-top:23px}
.skyline{margin:5px -48px 0}
.footer-bottom{font-size:9px;column-gap:18px}
.presentation-note{color:#95a6b1;font-size:8px;letter-spacing:.02em}
@media(min-width:1500px){.page-shell{width:min(1224px,calc(100% - 120px))}.project-composition{grid-template-columns:minmax(0,1.775770457fr) minmax(0,1fr) minmax(0,.75fr)}.project-featured img{max-height:none;background:none}}
@media(max-width:1250px){
 .page-shell{width:calc(100% - 80px)}.ad-brand{width:520px;flex-basis:520px}.masthead{gap:30px;padding:15px 0 15px}nav{gap:22px}.cover-title-row{padding:20px 0 21px}h1{font-size:44px}.practice-line{margin-top:8px;font-size:10px}.cover-intro{gap:29px}.cover-intro p{font-size:24px}.inquiry-link{gap:20px}.practice-network{margin-top:13px;padding-top:12px}.ad-affiliate-row{margin-top:12px}.skyline{margin-inline:-40px}
}
@media(max-width:1050px){
 .page-shell{width:calc(100% - 64px)}.ad-brand{width:470px;flex-basis:470px}.masthead{gap:20px}nav{gap:16px;font-size:11px}.cover-intro{gap:23px}.cover-intro p{font-size:22px}.inquiry-link{font-size:10px;gap:15px}h1{font-size:40px}.section-heading h2{font-size:16px}.section-heading{gap:15px}.skyline{margin-inline:-32px}
}
@media(max-width:850px){
 .ad-brand{width:430px;flex-basis:430px}.masthead-right{padding-top:0}.header-phone{display:none}nav{max-width:190px;justify-content:flex-end;flex-wrap:wrap;gap:0 20px}.cover-intro{display:block}.cover-intro p{font-size:23px}.inquiry-link{min-height:34px;margin-top:3px}.cover-title-row{gap:22px}h1{font-size:38px}.project-composition{gap:12px}.project figcaption{font-size:11px}.caption-label{gap:9px}.section-heading{grid-template-columns:1fr auto;gap:5px 18px}.section-heading .eyebrow{grid-column:1}.section-heading h2{grid-column:1;grid-row:2;font-size:19px}.section-heading>a{grid-column:2;grid-row:1/span 2}.ad-affiliate-row{gap:3.8%;margin-top:17px}
}
@media(max-width:600px){
 .page-shell{width:calc(100% - 36px)}.masthead{display:block;padding:13px 0 5px}.ad-brand{width:100%;max-width:470px;margin:auto}.masthead-right{display:block;margin-top:7px}nav{max-width:none;justify-content:space-between;gap:8px;flex-wrap:nowrap;font-size:11px}nav a{min-height:43px;gap:6px}.cover-title-row{display:flex;align-items:center;padding:20px 0 19px;gap:12px}.title-group{min-width:0}h1{font-size:clamp(27px,7.5vw,43px);line-height:1.06;letter-spacing:-.045em}.practice-line{font-size:10px;max-width:240px;line-height:1.6;margin-top:9px}.practice-line>span{margin:0 5px}.cover-intro{display:none}.project-composition{grid-template-columns:minmax(0,1fr) minmax(0,.75fr);gap:12px}.project-featured{grid-column:1/-1;grid-row:1}.project-medical{grid-column:1;grid-row:2}.project-residential{grid-column:2;grid-row:2;justify-self:auto}.project figcaption{min-height:34px;padding-top:3px;font-size:11px}.project-no{font-size:9px}.caption-arrow{font-size:14px}.image-open{width:27px;height:27px;bottom:9px;right:9px;opacity:0;transform:none}.image-link:focus-visible .image-open{opacity:1}.practice-network{margin-top:17px;padding:17px 0 20px}.section-heading h2{font-size:20px;max-width:230px}.section-heading .eyebrow{font-size:8px}.ad-affiliate-row{grid-template-columns:1fr;width:min(100%,360px);gap:16px;margin:22px auto 0}.skyline{margin:23px -18px 0}.footer-top{padding-top:19px}.footer-bottom{font-size:8px;gap:0 16px}.presentation-note{width:100%;font-size:8px;line-height:1.6;margin-top:6px}.contact-links a:first-child{font-size:17px;gap:10px}
}
@media(min-width:851px) and (max-height:800px){
 .page-shell{width:min(1140px,calc(100% - 80px))}.masthead{padding:12px 0 13px}.ad-brand{width:480px;flex-basis:480px}.cover-title-row{padding:14px 0 16px}h1{font-size:36px}.practice-line{margin-top:7px;font-size:10px}.cover-intro p{font-size:23px}.project figcaption{min-height:32px}.practice-network{margin-top:10px;padding:10px 0 13px}.section-heading>a{min-height:25px}.ad-affiliate-row{margin-top:8px}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.image-link img{transition:filter .3s ease}.image-link:hover img{filter:brightness(1.08)}}

/* Fit the page to its content; the spire meets Engineering's angled frame.
   Geometry: spire x=657.5/y=103 in the skyline, frame (1150,78.5)–(1064,292).
   Overlap follows the three-column badge width and skyline side margins. */
.page-shell{container-type:inline-size;--skyline-gutter-correction:46.254045px}
.practice-network{padding-bottom:0}
.footer{--spire-clearance:10px;--spire-overlap:calc(8.5591704cqw - var(--skyline-gutter-correction));position:relative;isolation:isolate;margin-top:calc(var(--spire-clearance) - var(--spire-overlap));padding:0}
.footer .skyline{position:relative;display:block;aspect-ratio:2169/607;margin-top:0;margin-bottom:0;padding:0}
.footer .ad-city-art{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;aspect-ratio:auto}
.view-dialog:not([open]){display:none}

/* Copyright and social marks sit directly on the water. */
.river-strip{position:absolute;z-index:2;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;color:#142b37;font-size:9px;line-height:1.3;text-shadow:0 1px 2px #f1eee0b3}
.river-strip::before{content:"";position:absolute;z-index:-1;inset:0 -48px;background:linear-gradient(transparent,rgba(244,240,227,.44));pointer-events:none}
.river-copyright{white-space:nowrap}
.river-actions{display:flex;align-items:center}
.river-strip .ad-info{position:relative;margin:0;color:inherit;font-size:inherit}
.river-strip .ad-info summary{min-height:44px;font:inherit;color:inherit}
.river-strip .ad-info-content{bottom:calc(100% + 8px);left:0;right:auto;width:min(480px,calc(100vw - 36px));max-width:none;color:#d7dee3;text-shadow:none}
.river-strip .river-socials{display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:4px;max-width:none}
.river-strip .river-socials .social-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;min-height:44px;color:inherit}
.river-strip .river-socials .social-pending{cursor:default}
.river-strip .river-socials svg{display:block;width:17px;height:17px}
.river-strip :is(a,summary):hover{color:#674916}
.river-strip :is(a,summary):focus-visible{outline-color:#142b37;outline-offset:3px}
.river-strip .ad-info-content a{color:var(--gold)}
@media(max-width:1250px){.page-shell{--skyline-gutter-correction:38.545037px}.river-strip::before{inset-inline:-40px}}
@media(max-width:1050px){.page-shell{--skyline-gutter-correction:30.836030px}.river-strip::before{inset-inline:-32px}}
@media(max-width:850px){.footer{--spire-overlap:max(calc(6.2978469cqw - var(--skyline-gutter-correction)),calc(0.876627310cqw + 0.442600277px))}}
@media(max-width:600px){
 .footer{--spire-clearance:0px;--spire-overlap:0px}
 .river-strip{gap:8px;font-size:8px;min-height:36px;align-items:flex-end;padding-bottom:2px}
 .river-strip::before{inset:auto -18px 0;height:20px}
 .river-strip .ad-info summary{min-height:34px;align-items:flex-end;padding-bottom:4px}
 .river-strip .river-socials{gap:3px}
 .river-strip .river-socials .social-icon{width:28px;min-height:34px;align-items:flex-end;padding-bottom:3px}
 .river-strip .river-socials svg{width:15px;height:15px}
}

/* One quiet statement connects the three affiliated practices. */
.practice-network .section-heading{display:block;text-align:center}
.practice-network .section-heading h2{max-width:none;margin:0;font-size:16px;line-height:1.4;font-weight:400;letter-spacing:-.015em}
@media(max-width:600px){.practice-network .section-heading h2{font-size:clamp(12px,3.4vw,14px)}}

/* Let the identity and photographs lead; keep inquiries in the masthead. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.practice-description{padding:17px 0 19px}
.practice-description .practice-line{margin:0;max-width:none;font-size:13px;line-height:1.5;color:#c1ccd3}
.masthead-right{position:relative;padding-top:0;gap:2px;z-index:10}
.header-address{max-width:100%;margin:0;color:#c3cfd6;font:400 11.5px/1.65 "Inter Tight",Arial,sans-serif;text-align:right;white-space:nowrap}
.header-navigation{display:flex;align-items:center;justify-content:flex-end;gap:30px;max-width:none;flex-wrap:nowrap;font-size:13px;letter-spacing:.015em}
.header-menu{position:static}
.header-menu>summary{display:flex;align-items:center;gap:12px;min-height:44px;padding:0;list-style:none;cursor:pointer;color:#e0cfa8;white-space:nowrap}
.header-menu>summary::-webkit-details-marker{display:none}
.header-menu>summary::marker{content:""}
.header-menu>summary:hover{color:#f1e4c8}
.menu-chevron{width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.header-menu[open]>summary .menu-chevron{transform:translateY(2px) rotate(225deg)}
.header-panel{position:absolute;top:calc(100% + 10px);right:0;z-index:30;width:min(520px,calc(100vw - 36px));max-height:min(650px,calc(100dvh - 210px));overflow:auto;overscroll-behavior:contain;padding:23px 26px;background:#142431;border:1px solid #cfbf9b66;box-shadow:0 20px 60px #0008;text-align:left;font-size:12px;line-height:1.5;letter-spacing:0;color:#dce2e5}
.header-panel-contact{width:min(460px,calc(100vw - 36px))}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:11px}
.panel-heading h2{font-family:"Inter Tight",Arial,sans-serif;font-size:23px;line-height:1.25;font-weight:400;letter-spacing:-.02em;color:#edece5}
.panel-close{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;margin:-5px -9px -5px 0;border:0;background:none;font-size:27px;font-weight:400;color:#b8c4cb}
.panel-close:hover{color:#e0cfa8}
.panel-intro{margin-bottom:20px;color:#b4c1c9}
.panel-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 18px}
.panel-form-grid label{display:block;min-width:0;font-size:11px;color:#c4ced4}
.field-optional{color:#94a5b0}
.panel-wide{grid-column:1/-1}
.header-panel :is(input,textarea){display:block;width:100%;margin-top:6px;padding:10px 11px;border:1px solid #9aadb43d;border-radius:0;background:#0f1d28;color:#edece5;font:400 16px/1.4 "Inter Tight",Arial,sans-serif}
.header-panel textarea{min-height:83px;resize:vertical}
.header-panel :is(input,textarea)::placeholder{color:#8296a4;font-size:12px}
.header-panel :is(input,textarea):focus-visible{outline:1px solid #dfcda5;outline-offset:2px}
.panel-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;margin-top:18px}
.panel-primary,.panel-copy{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:42px;padding:0 14px;border:1px solid #d0ba8866;background:transparent;font-size:12px;color:#e0cfa8}
.panel-primary:hover{background:#decba512}
.panel-copy{border:0;padding:0;color:#afbec7;font-size:11px}
.panel-copy:hover{color:#e0cfa8}
.panel-note{margin-top:8px;color:#a3b3be;font-size:10px}
.panel-status{margin-top:10px;color:#d8c8a8;font-size:11px}
.panel-status:empty{display:none}
.header-panel .panel-copy-fallback{min-height:110px;font-size:12px}
.header-panel [hidden]{display:none}
.header-panel .panel-zoning-link{display:flex;align-items:center;justify-content:space-between;min-height:44px;margin-top:20px;padding-top:12px;border-top:1px solid #a2b3ba33;font-size:11px;color:#c2d0d9}
.header-panel .panel-zoning-link:hover{color:#e0cfa8}
.panel-direct-contact{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px;padding-top:10px;border-top:1px solid #a2b3ba33}
.header-panel .panel-direct-contact a{display:inline-flex;min-height:36px;font-size:11px;color:#c2d0d9}
@media(max-width:850px){.header-navigation{gap:21px;font-size:12px}.header-menu>summary{gap:8px}}
@media(max-width:600px){
 .masthead-right{margin-top:2px}
 .header-address{font-size:clamp(10.5px,2.8vw,11.5px)}
 .header-navigation{justify-content:space-between;gap:18px;font-size:13px}
 .practice-description{padding:14px 0 16px}
 .practice-description .practice-line{font-size:11px}
 .header-panel{padding:18px;top:calc(100% + 6px);max-height:calc(100dvh - 210px)}
 .panel-heading h2{font-size:21px}
 .panel-form-grid{gap:12px}
}

/* Let the project imagery lead. Reduce the three desktop marks by six percent,
   drawing the outer marks inward while preserving their approved artwork.
   Recalculate the Engineering/spire relationship for the smaller first mark. */
@media(min-width:1051px){
 .ad-affiliate-mark{width:94%;margin-inline:auto}
 .ad-affiliate-row li:first-child .ad-affiliate-mark{margin-right:0}
 .ad-affiliate-row li:last-child .ad-affiliate-mark{margin-left:0}
 .ad-affiliate-mark .ad-panel-copy{font-size:3.85cqw}
 .footer{--spire-overlap:calc(8.16360284cqw - var(--skyline-gutter-correction))}
}
