:root{--ink:#171817;--paper:#f2f0ea;--acid:#b98a52;--bronze:#b98a52;--stone:#d8d2c6;--night:#121413}
body.intro-lock{overflow:hidden}
.brand img,.footer-brand img{color:#fff}

.site-intro{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#111312;color:#f4f0e8;overflow:hidden;transition:opacity .65s ease,visibility .65s ease}
.site-intro::before,.site-intro::after{content:"";position:absolute;background:rgba(255,255,255,.14)}
.site-intro::before{width:1px;height:100%;left:50%;transform:scaleY(0);transform-origin:top;animation:intro-line-y 1.2s .15s forwards}
.site-intro::after{height:1px;width:100%;top:50%;transform:scaleX(0);transform-origin:left;animation:intro-line-x 1.2s .15s forwards}
.intro-inner{position:relative;z-index:1;text-align:center;display:grid;justify-items:center;gap:1.25rem}
.intro-mark{width:clamp(92px,11vw,150px);height:auto;color:#f4f0e8;opacity:0;transform:scale(.88);animation:intro-mark .9s .25s forwards}
.intro-name{margin:0;font-size:clamp(.78rem,1.3vw,1rem);font-weight:600;letter-spacing:.32em;text-transform:uppercase;opacity:0;transform:translateY(10px);animation:intro-copy .7s .72s forwards}
.intro-disciplines{margin:0;color:#b98a52;font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;opacity:0;animation:intro-copy .7s 1s forwards}
.intro-progress{width:180px;height:1px;background:#ffffff20;overflow:hidden;margin-top:.8rem}
.intro-progress span{display:block;width:100%;height:100%;background:#b98a52;transform:translateX(-100%);animation:intro-progress 1.7s .2s cubic-bezier(.6,0,.2,1) forwards}
.site-intro.is-complete{opacity:0;visibility:hidden;pointer-events:none}
@keyframes intro-line-y{to{transform:scaleY(1)}}@keyframes intro-line-x{to{transform:scaleX(1)}}@keyframes intro-mark{to{opacity:1;transform:none}}@keyframes intro-copy{to{opacity:1;transform:none}}@keyframes intro-progress{to{transform:none}}

.site-header{padding-top:1.2rem;background:linear-gradient(180deg,rgba(10,12,11,.82),transparent);color:#fff}
.site-header .brand img{width:45px;height:51px;padding:0;color:#fff;filter:none}
.site-header.scrolled{background:rgba(18,20,19,.96)}
.nav-cta{border-color:rgba(255,255,255,.6)}

.hero.arch-cover{height:auto;min-height:100svh;padding:8.5rem var(--pad) 2rem;background:#121413;color:#f5f1e9;display:grid;grid-template-columns:minmax(0,.95fr) minmax(390px,1.05fr);align-items:stretch;gap:clamp(2rem,5vw,6rem);overflow:hidden;isolation:isolate}
.arch-cover::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:clamp(54px,6vw,92px) clamp(54px,6vw,92px)}
.arch-cover::after{content:"";position:absolute;width:50vw;height:50vw;left:-24vw;top:14vh;border:1px solid rgba(185,138,82,.22);border-radius:50%;z-index:-1}
.arch-copy{display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(2rem,5vh,4rem);position:relative;z-index:2}
.arch-kicker{margin:0 0 1.5rem;color:#c7b79f;font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.arch-cover h1{font-size:clamp(4.7rem,8.8vw,10.2rem);line-height:.82;max-width:7.4ch}
.arch-cover h1 span{display:block;color:#b98a52}
.arch-summary{max-width:38rem;margin:2rem 0 2.4rem;padding-left:1.2rem;border-left:1px solid #b98a52;font-size:clamp(1rem,1.3vw,1.2rem);color:#ded9cf}
.arch-meta{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:clamp(1.4rem,4vw,4.2rem);margin-bottom:2.4rem}
.arch-meta span{font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:#9e9e98}.arch-meta strong{display:block;margin-top:.3rem;color:#fff;font-size:.9rem;letter-spacing:.02em;text-transform:none}
.arch-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.arch-actions .button-primary{background:#b98a52;color:#111}.arch-actions .text-link{color:#fff}

.arch-visual{position:relative;min-height:calc(100svh - 10.5rem);display:grid;grid-template-columns:1fr .48fr;grid-template-rows:1fr .45fr;gap:.7rem}
.arch-frame{position:relative;overflow:hidden;background:#2b2d2b}.arch-frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}.arch-frame:hover img{transform:scale(1.025)}
.arch-frame-main{grid-row:1/3;background:#f4f4f1}.arch-frame-main img{object-fit:contain;object-position:center bottom;background:#f4f4f1}
.arch-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.58))}
.arch-frame small{position:absolute;z-index:2;left:1rem;bottom:.9rem;color:#fff;font-size:.62rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.arch-index{position:absolute;right:-.2rem;top:-.6rem;z-index:3;font:500 clamp(4rem,8vw,8rem)/1 Oswald,sans-serif;color:rgba(255,255,255,.12)}
.arch-rule{position:absolute;left:-2.8rem;top:32%;z-index:4;width:5.2rem;height:1px;background:#b98a52}
.expertise-ticker{background:#b98a52;color:#111;border-color:#111}

.services,.about{background:#d8d2c6}.button-primary{background:#b98a52}.section-label{color:#8a6237}.intro .section-label,.progress .section-label,.specialist .section-label{color:#c89d68}

@media(max-width:980px){.hero.arch-cover{grid-template-columns:1fr;padding-top:8rem}.arch-copy{min-height:62svh}.arch-visual{min-height:70svh}.arch-cover h1{font-size:clamp(4.5rem,14vw,8rem)}}
@media(max-width:620px){.site-header .brand span{display:grid}.site-header .brand strong{font-size:.68rem}.site-header .brand small{font-size:.48rem}.hero.arch-cover{padding-top:7.5rem}.arch-copy{min-height:70svh}.arch-cover h1{font-size:clamp(4.1rem,19vw,6.5rem)}.arch-meta{grid-template-columns:1fr 1fr}.arch-visual{min-height:74svh;grid-template-columns:1fr 1fr;grid-template-rows:1fr .38fr}.arch-frame-main{grid-column:1/3;grid-row:1}.arch-rule{display:none}}
@media(prefers-reduced-motion:reduce){.site-intro::before,.site-intro::after,.intro-mark,.intro-name,.intro-disciplines,.intro-progress span{animation:none;opacity:1;transform:none}.site-intro{transition:none}.arch-frame img{transition:none}}

/* 2026 portfolio amendments */
.intro-logo{width:clamp(230px,28vw,410px);height:auto;filter:invert(1);opacity:0;transform:scale(.94);animation:intro-mark .9s .25s forwards}
.site-header .brand img,.footer-brand img{width:clamp(170px,15vw,230px);height:auto;padding:0;background:transparent;filter:invert(1) drop-shadow(0 1px 1px rgba(0,0,0,.35));border-radius:0}
.site-header .brand,.footer-brand{flex:0 0 auto}
.expertise-ticker div{animation-duration:18.67s}
.service-card.service-minor{opacity:.72}
.cover-left img{object-position:left center}.cover-port img{object-position:left top}
.site-photo-grid{display:grid;grid-template-columns:1.25fr .8fr .8fr;gap:.7rem}.site-photo-grid img{width:100%;height:24rem;object-fit:cover}.site-photo-grid img:first-child{grid-row:span 2;height:100%}
.metal-showcase{background:#b98a52;color:#111}.metal-showcase .section-label{color:#111}.metal-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #111}.metal-grid article{min-height:21rem;padding:2rem 1.4rem;border-right:1px solid #111;display:flex;flex-direction:column;justify-content:flex-end}.metal-grid article:last-child{border-right:0}.metal-grid h3{font-family:Oswald,sans-serif;font-size:clamp(2rem,3vw,3.5rem);line-height:1;text-transform:uppercase;margin:0 0 1rem}.metal-grid p{margin:0}
.solar-showcase{padding-top:4.5rem;padding-bottom:4.5rem}.solar-compact{display:grid;grid-template-columns:.75fr 1.25fr;gap:3rem;align-items:center}.solar-compact h2{font-family:Oswald,sans-serif;text-transform:uppercase;font-size:clamp(2.6rem,5vw,5rem);line-height:1;margin:0 0 1rem}.solar-compact .solar-grid{grid-template-columns:repeat(3,1fr)}.solar-compact .solar-grid img,.solar-compact .solar-grid img:nth-child(1),.solar-compact .solar-grid img:nth-child(6){grid-column:auto;height:14rem}
.cidb-badge{margin-top:2.5rem;display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid #111;width:max-content;max-width:100%;background:#fff}.cidb-badge img{width:70px;height:70px;object-fit:contain}.cidb-badge b{text-transform:uppercase;letter-spacing:.12em;font-size:.85rem}
@media(max-width:980px){.site-header .brand img{width:170px}.metal-grid{grid-template-columns:1fr 1fr}.metal-grid article:nth-child(2){border-right:0}.metal-grid article{border-bottom:1px solid #111}.solar-compact{grid-template-columns:1fr}.site-photo-grid img{height:18rem}}
@media(max-width:620px){.site-header .brand img{width:145px}.intro-logo{width:min(80vw,320px)}.site-photo-grid{grid-template-columns:1fr 1fr}.site-photo-grid img,.site-photo-grid img:first-child{height:18rem;grid-row:auto}.site-photo-grid img:first-child{grid-column:1/3}.metal-grid{grid-template-columns:1fr}.metal-grid article{min-height:16rem;border-right:0}.solar-compact .solar-grid{grid-template-columns:1fr}.solar-compact .solar-grid img,.solar-compact .solar-grid img:nth-child(1),.solar-compact .solar-grid img:nth-child(6){height:17rem}.cidb-badge img{width:58px;height:58px}}

/* Expanded real-site progress gallery */
.progress-gallery{display:grid;gap:3.5rem;min-width:0}.progress-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:16rem;gap:.7rem}.progress-photo{position:relative;display:block;padding:0;border:0;overflow:hidden;background:#1a1a1a;color:#fff;cursor:zoom-in;text-align:left}.progress-photo-feature{grid-column:span 2;grid-row:span 2}.progress-photo img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .35s}.progress-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.78))}.progress-photo span{position:absolute;z-index:2;left:1rem;bottom:.85rem;font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.progress-photo:hover img,.progress-photo:focus-visible img{transform:scale(1.035);filter:brightness(1.06)}.progress-photo:focus-visible{outline:2px solid #b98a52;outline-offset:3px}.progress-video{margin:0}.progress-video video{width:100%;aspect-ratio:16/9;object-fit:cover;background:#111}.progress-video figcaption{display:flex;justify-content:space-between;gap:1rem;padding-top:1rem;margin-top:1rem;border-top:1px solid rgba(255,255,255,.32)}.progress-video figcaption span{color:#aaa}.lightbox .lightbox-copy{padding:1.2rem 2rem}.lightbox .lightbox-copy p{color:#b98a52;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.lightbox .lightbox-copy h3{font-family:Oswald,sans-serif;font-size:2rem;text-transform:uppercase;line-height:1}.lightbox .lightbox-copy span{color:#aaa;font-size:.82rem}
.preserved-progress-videos{display:grid;gap:3.5rem}.preserved-progress-videos figure{margin:0}.preserved-progress-videos video{width:100%;aspect-ratio:16/9;object-fit:cover;background:#111}.preserved-progress-videos figcaption{display:flex;justify-content:space-between;gap:1rem;padding-top:1rem;margin-top:1rem;border-top:1px solid rgba(255,255,255,.32)}.preserved-progress-videos figcaption span{color:#aaa}.progress-additions{padding-top:1rem;border-top:1px solid rgba(255,255,255,.22)}.progress-additions .section-label{margin-bottom:.7rem}.progress-additions h3{font-family:Oswald,sans-serif;font-size:clamp(2.5rem,5vw,5rem);line-height:1;text-transform:uppercase;margin:0}
@media(max-width:1050px){.progress-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:18rem}.progress-photo-feature{grid-column:span 2}}
@media(max-width:620px){.progress-photo-grid{grid-template-columns:1fr;grid-auto-rows:21rem}.progress-photo-feature{grid-column:auto;grid-row:auto}.progress-video figcaption,.preserved-progress-videos figcaption{display:grid}.progress-photo span{font-size:.72rem}}
