@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#1a1c1d;--muted:#666a69;--paper:#f2f2ef;--white:#fff;--red:#b52b2d;--line:#c8cac7;--dark:#17191a;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}h1,h2,h3,p,blockquote{margin:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif;letter-spacing:-.055em;line-height:1.05}p{line-height:1.65}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}.container{width:min(100% - 8vw,1440px);margin:auto}.section-pad{padding:clamp(90px,10vw,170px) 0}.eyebrow{font-size:.76rem;letter-spacing:.16em;font-weight:700;line-height:1.5}.red{color:var(--red)}.skip{position:absolute;top:-100px;left:1rem;z-index:100;background:white;color:black;padding:12px}.skip:focus{top:12px}:focus-visible{outline:3px solid var(--red);outline-offset:4px}.site-header{position:absolute;top:0;left:0;right:0;z-index:20;color:white}.inner .site-header{position:relative;background:var(--dark)}.header-inner{width:min(100% - 8vw,1440px);margin:auto;min-height:90px;display:flex;align-items:center;gap:5vw;border-bottom:1px solid rgba(255,255,255,.3)}.brand{width:162px;flex:none;display:block}.brand img{width:100%;height:70px;object-fit:contain;mix-blend-mode:screen}.site-header nav{margin-left:auto;display:flex;gap:2.5vw;align-items:center}.site-header nav a{font-size:.87rem;font-weight:600;white-space:nowrap}.site-header a:hover,.text-link:hover{color:#d65353}.site-header nav a[aria-current]{color:#e98b8b}.header-cta{font-size:.84rem;font-weight:700;border:1px solid #bbb;padding:12px 17px;white-space:nowrap}.menu-toggle{display:none}.hero{height:min(850px,100svh);min-height:660px;color:#fff;position:relative;background:#202325;overflow:hidden}.hero-photo,.hero-shade{position:absolute;inset:0}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 48%}.hero-shade{background:linear-gradient(90deg,rgba(10,11,12,.72),rgba(10,11,12,.22) 70%),linear-gradient(0deg,rgba(10,11,12,.68),transparent 38%)}.hero-content{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:125px}.hero-kicker{display:flex;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:18px;margin-bottom:44px}.hero h1{font-size:clamp(4.2rem,9.7vw,10rem);font-weight:600;text-transform:uppercase;line-height:.94;max-width:1050px}.hero h1 em,.method h2 em{font-style:normal;color:#d0d0cb}.hero-bottom{margin-top:48px;display:flex;justify-content:space-between;align-items:end;gap:30px}.hero-bottom p{font-size:clamp(1.04rem,1.5vw,1.35rem);max-width:520px;line-height:1.45}.hero-bottom>div{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:44px;padding:18px 22px;font-size:.88rem;font-weight:700;min-height:58px;transition:background .2s,color .2s}.button-light{background:#fff;color:#17191a}.button-light:hover{background:#d9dcda;color:#17191a}.button-dark{background:var(--dark);color:white;border:0}.button-dark:hover{background:var(--red)}.hero-secondary{font-size:.88rem;font-weight:700;text-decoration:underline;text-underline-offset:7px}.hero-index{position:absolute;bottom:31px;left:4vw;right:4vw;display:flex;justify-content:space-between;font-size:.7rem;letter-spacing:.14em}.two-col{display:grid;grid-template-columns:25% 1fr;gap:5%}.manifesto h2{font-size:clamp(2.8rem,5.3vw,6.2rem);font-weight:600;max-width:1160px}.manifesto h2 span{color:#909492}.manifesto-foot{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-top:90px}.manifesto-foot p{max-width:550px;font-size:1.12rem}.small-rule{border-top:1px solid var(--red);padding-top:15px;min-width:190px;font-size:.72rem;letter-spacing:.14em;line-height:2}.solutions{background:#fff}.section-head{display:grid;grid-template-columns:25% 1fr 25%;gap:2%;align-items:end;margin-bottom:70px}.section-head h2{font-size:clamp(3.7rem,6.3vw,7.8rem);font-weight:600}.section-head p{max-width:300px;font-size:1rem}.solution-row{display:grid;grid-template-columns:25% 33% 1fr auto;gap:2%;align-items:center;padding:30px 0;border-top:1px solid #aeb3b0}.solution-row:last-child{border-bottom:1px solid #aeb3b0}.solution-row span{font-size:.75rem;color:var(--red)}.solution-row h3{font-size:clamp(2rem,3.2vw,4rem);font-weight:600}.solution-row p{font-size:.92rem;max-width:300px;color:#555}.solution-row b{font-size:1.4rem;font-weight:400}.solution-row:hover h3{color:var(--red)}.method{background:var(--dark);color:white}.method-heading{display:grid;grid-template-columns:25% 1fr;gap:5%;margin-bottom:75px}.method h2{font-size:clamp(3.7rem,6.3vw,7.8rem);font-weight:600}.method-grid{display:grid;grid-template-columns:35% 1fr;gap:12%}.method-copy img{width:100%;aspect-ratio:1.55;object-fit:cover;filter:grayscale(.15)}.method-copy p{max-width:420px;margin:25px 0;font-size:1.05rem;color:#d4d6d4}.text-link{display:inline-block;font-size:.9rem;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:8px}.layers{border-top:1px solid #777}.layer{display:grid;grid-template-columns:70px 1fr 30px;align-items:center;padding:18px 0;border-bottom:1px solid #555}.layer span{color:#d85757;font-size:.8rem}.layer strong{font-family:Manrope;font-size:clamp(1.55rem,2.8vw,3.2rem);font-weight:500;letter-spacing:-.04em;text-transform:uppercase}.layer-mark{font-size:1.6rem!important}.layer-total{padding-top:28px;font:700 clamp(2.7rem,5vw,5.5rem) Manrope;letter-spacing:-.07em;display:flex;justify-content:space-between;align-items:center}.layer-total small{font:700 .7rem 'DM Sans';letter-spacing:.16em;color:#d85757}.featured-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px 3%}.project-card{display:block;min-width:0}.project-card-large{grid-column:span 2}.project-image{background:#d0d1cd;overflow:hidden}.project-image img{width:100%;aspect-ratio:1.5;object-fit:cover;transition:transform .6s}.project-card-large .project-image img{aspect-ratio:2.15}.project-card:hover img{transform:scale(1.035)}.project-caption{padding-top:20px;border-top:1px solid var(--ink);margin-top:13px;display:flex;flex-direction:column;gap:15px}.project-caption .eyebrow{color:var(--red);font-size:.67rem}.project-title{font:600 clamp(1.7rem,2.5vw,3rem) Manrope;letter-spacing:-.05em;display:flex;justify-content:space-between}.project-title b{font-weight:400}.section-end{text-align:right;margin-top:70px}.about-band{background:#151718;color:#fff}.about-grid{display:grid;grid-template-columns:54% 1fr;gap:8%;align-items:center}.about-photo{position:relative}.about-photo img{width:100%;aspect-ratio:1.05;object-fit:cover}.image-label{position:absolute;bottom:0;left:0;padding:13px 18px;background:var(--dark);color:white;font-size:.69rem;letter-spacing:.15em}.about-copy h2{font-size:clamp(3rem,4.8vw,6rem);margin:30px 0}.about-copy p{max-width:480px;font-size:1.05rem;margin-bottom:35px}.proof .section-head{grid-template-columns:25% 1fr}.quotes{display:grid;grid-template-columns:1fr 1fr;gap:7%}.quotes blockquote{padding:40px 0;border-top:1px solid var(--ink)}.quotes blockquote>span{font:700 4rem Georgia;color:var(--red);line-height:1}.quotes p{font:500 clamp(1.6rem,2.3vw,2.7rem)/1.36 Manrope;letter-spacing:-.04em;max-width:660px;margin:5px 0 30px}.quotes cite{font-style:normal;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase}.proof-foot{text-align:right;margin-top:30px}.client-strip{border-top:1px solid var(--line);margin-top:110px;padding-top:35px;display:grid;grid-template-columns:25% 1fr;gap:6%;align-items:center}.client-strip img{width:100%;height:140px;object-fit:contain;mix-blend-mode:multiply;filter:grayscale(1)}.footer{background:#151718;color:#fff;padding:100px 0 30px}.footer-top{display:grid;grid-template-columns:1fr 30%;gap:10%;padding-bottom:100px}.footer h2{font-size:clamp(3rem,5.4vw,7rem);font-weight:600;margin:24px 0 37px}.footer-info{display:flex;flex-direction:column;gap:18px;padding-top:10px}.footer-info>a{font-size:1.05rem}.footer-info p{color:#aeb0ae;margin-top:20px}.footer-bottom{border-top:1px solid #656868;padding-top:23px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:.75rem;color:#bfc2c0}.footer-brand{font:800 2.5rem Manrope;color:#fff;letter-spacing:-.09em}.footer-brand span{font-size:.6rem;vertical-align:top}.page-intro{background:var(--dark);color:white;padding:120px 0 105px}.page-intro h1{font-size:clamp(3.8rem,7.3vw,9rem);max-width:1100px;margin:33px 0}.page-intro p{font-size:1.1rem;max-width:650px;color:#c9cbca}.filters{border-bottom:1px solid var(--line);padding-bottom:20px;display:flex;gap:10px;flex-wrap:wrap;margin-bottom:45px}.filters button{border:1px solid #aab0ac;padding:10px 18px;background:transparent;font-size:.83rem}.filters button.active,.filters button:hover{background:var(--dark);color:#fff}.catalog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:70px 4%}.catalog-grid .project-card:nth-child(5n+1){grid-column:span 2}.catalog-grid .project-card:nth-child(5n+1) .project-image img{aspect-ratio:2.1}.catalog-grid .project-card[hidden]{display:none}.case-hero{background:var(--paper);padding-top:55px}.back-link{display:block;margin-bottom:80px;font-size:.85rem}.case-hero h1{font-size:clamp(3.5rem,7vw,9rem);margin:20px 0 55px}.case-meta{display:flex;gap:8vw;margin-bottom:55px}.case-meta div{border-top:1px solid var(--line);padding-top:13px;display:flex;flex-direction:column;gap:10px;max-width:400px}.case-meta span{font-size:.7rem;color:var(--red);letter-spacing:.15em}.case-meta strong{font-weight:500}.case-image img{width:100%;max-height:790px;object-fit:cover}.case-body h2{font-size:clamp(2.7rem,4.4vw,5.5rem);max-width:800px}.case-body p{max-width:680px;margin-top:40px;font-size:1.1rem}.next-project{background:#dfe1df}.next-project .project-card{margin-top:30px}.services-page .service-group{display:grid;grid-template-columns:35% 1fr;gap:5%;border-top:1px solid var(--line);padding:55px 0;scroll-margin-top:30px}.service-group-head h2{font-size:clamp(2.7rem,4vw,5rem);margin-top:25px}.service-items{display:grid;grid-template-columns:1fr 1fr;gap:45px 30px}.service-item{border-top:1px solid var(--line);padding-top:18px}.service-item h3{font-size:1.3rem;letter-spacing:-.03em}.service-item p{color:var(--muted);font-size:.95rem;margin-top:12px}.bim-feature{background:#dfe1df}.bim-feature h2{font-size:clamp(3rem,5vw,6rem)}.bim-feature p{max-width:680px;font-size:1.1rem;margin:35px 0}.about-page-grid{display:grid;grid-template-columns:50% 1fr;gap:10%;align-items:center}.about-page-grid img{width:100%;aspect-ratio:1.4;object-fit:cover}.about-page h2,.founder h2,.contact-page h2{font-size:clamp(3rem,4.5vw,6rem);margin:30px 0}.about-page p,.founder p{font-size:1.08rem;max-width:590px;margin-bottom:20px}.founder{background:#dfe1df}.founder-grid{display:grid;grid-template-columns:1fr 35%;gap:12%;align-items:center}.founder-grid img{width:100%;max-height:650px;object-fit:cover}.founder .role{font-weight:700;color:var(--red);margin-bottom:32px}.contact-grid{display:grid;grid-template-columns:37% 1fr;gap:12%}.contact-page h2{margin-bottom:20px}.contact-page p{max-width:450px}.contact-details{margin-top:50px;display:flex;flex-direction:column;gap:9px}.contact-details>span{color:var(--red);font-size:.72rem;letter-spacing:.15em;font-weight:700;margin-top:19px}.contact-details a,.contact-details address{font-size:1.02rem;line-height:1.5;font-style:normal}.contact-form{border-top:1px solid var(--ink);padding-top:26px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-form label{display:block;font-size:.82rem;font-weight:700;margin-bottom:30px}.contact-form input,.contact-form select,.contact-form textarea{margin-top:12px;width:100%;background:transparent;border:0;border-bottom:1px solid #9ca09d;border-radius:0;padding:12px 0;font-size:1rem;color:var(--ink)}.contact-form textarea{resize:vertical}.contact-form .form-note{font-size:.78rem;color:var(--muted);margin-top:16px}.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s,transform .75s}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){.site-header nav{gap:14px}.header-cta{display:none}.section-head{grid-template-columns:1fr 1fr}.section-head .eyebrow{grid-column:span 2}.section-head p{grid-column:2}.solution-row{grid-template-columns:8% 1fr 1fr auto}.method-grid{gap:5%}.about-grid{gap:5%}.footer-top{grid-template-columns:1fr 40%}}
@media(max-width:680px){.container,.header-inner{width:calc(100% - 40px)}.section-pad{padding:82px 0}.header-inner{min-height:72px}.brand{width:128px}.brand img{height:60px}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;margin-left:auto;background:transparent;border:0;padding:15px;min-height:48px;min-width:48px}.menu-toggle span{height:2px;width:22px;background:white}.site-header nav{display:none;position:absolute;top:72px;left:0;right:0;background:#17191a;padding:20px;flex-direction:column;align-items:stretch;gap:0}.site-header nav.open{display:flex}.site-header nav a{padding:15px;border-top:1px solid #454849;font-size:1.1rem}.hero{min-height:680px;height:92svh}.hero-photo img{object-position:58% center}.hero-shade{background:linear-gradient(0deg,rgba(10,11,12,.88),rgba(10,11,12,.15) 80%)}.hero-content{padding-bottom:120px}.hero-kicker{font-size:.64rem;margin-bottom:35px}.hero-kicker span{display:none}.hero h1{font-size:clamp(3.5rem,12.4vw,5.8rem)}.hero-bottom{margin-top:28px;display:block}.hero-bottom p{font-size:1rem;max-width:360px;margin-bottom:25px}.hero-bottom>div{gap:17px}.hero-index{left:20px;right:20px}.two-col,.method-heading,.method-grid,.about-grid,.client-strip,.footer-top,.services-page .service-group,.about-page-grid,.founder-grid,.contact-grid{grid-template-columns:1fr;gap:32px}.manifesto h2{font-size:clamp(2.55rem,9vw,4.5rem)}.manifesto-foot{display:block;margin-top:40px}.manifesto-foot p{font-size:1rem}.small-rule{display:block;margin-top:35px}.section-head{display:block;margin-bottom:40px}.section-head h2{font-size:clamp(3rem,10vw,5rem);margin:18px 0}.section-head p{font-size:1rem}.solution-row{grid-template-columns:35px 1fr 20px;gap:12px;padding:22px 0}.solution-row h3{font-size:1.8rem}.solution-row p{grid-column:2;grid-row:2;font-size:.83rem}.solution-row b{grid-column:3;grid-row:1}.method h2{font-size:clamp(3rem,10vw,5rem)}.method-copy img{aspect-ratio:1.4}.method-grid .method-copy{order:2}.method-grid .layers{order:1}.layer{grid-template-columns:42px 1fr 18px;padding:14px 0}.layer strong{font-size:1.5rem}.layer-total{font-size:3rem}.featured-grid,.catalog-grid{grid-template-columns:1fr;gap:50px}.project-card-large,.catalog-grid .project-card:nth-child(5n+1){grid-column:auto}.project-card-large .project-image img,.catalog-grid .project-card:nth-child(5n+1) .project-image img{aspect-ratio:1.35}.project-image img{aspect-ratio:1.3}.project-title{font-size:1.7rem}.section-end{text-align:left;margin-top:50px}.about-photo img{aspect-ratio:1}.about-copy h2{font-size:clamp(2.8rem,9vw,4.5rem)}.quotes{grid-template-columns:1fr;gap:35px}.quotes p{font-size:1.6rem}.client-strip{margin-top:70px}.client-strip img{height:auto}.footer{padding:70px 0 25px}.footer h2{font-size:3.2rem}.footer-top{padding-bottom:65px}.footer-bottom{display:grid;grid-template-columns:1fr 1fr}.footer-bottom .footer-brand{grid-column:span 2}.page-intro{padding:90px 0 80px}.page-intro h1{font-size:clamp(3.4rem,11vw,5.5rem)}.page-intro p{font-size:1rem}.case-hero{padding-top:30px}.back-link{margin-bottom:65px}.case-hero h1{font-size:3.5rem;margin-bottom:40px}.case-meta{display:block;margin-bottom:35px}.case-meta div{margin-bottom:20px}.case-image img{min-height:300px}.case-body h2,.bim-feature h2{font-size:3rem}.services-page .service-group{padding:45px 0}.service-items{grid-template-columns:1fr;gap:30px}.service-group-head h2{margin-top:10px}.founder-grid img{max-height:500px;object-position:center 20%}.form-row{grid-template-columns:1fr;gap:0}.contact-page h2{font-size:3rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.project-image img,.button{transition:none}}
.bim-gallery{background:#e5e5e5}.bim-images{display:grid;grid-template-columns:1fr 1fr;gap:3%}.bim-images figure{margin:0}.bim-images img{width:100%;aspect-ratio:1.65;object-fit:cover;background:#dedfdd}.bim-images figcaption{font-size:.73rem;letter-spacing:.15em;color:var(--red);border-top:1px solid var(--ink);padding-top:14px;margin-top:14px;font-weight:700}@media(max-width:680px){.bim-images{grid-template-columns:1fr;gap:35px}}
.brand img{mix-blend-mode:normal}.footer-brand{display:block;width:156px}.footer-brand img{width:100%;height:auto}.client-strip{display:block;overflow:hidden;padding-top:30px}.client-marquee-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.marquee-toggle{background:none;border:1px solid #a8aeaa;padding:10px 14px;min-height:44px;color:var(--ink);font-size:.78rem;font-weight:700}.marquee-toggle:hover{border-color:var(--red);color:var(--red)}.client-marquee{overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent)}.client-marquee-track{display:flex;width:max-content;animation:client-slide 44s linear infinite;will-change:transform}.client-marquee-group{display:flex;flex:none;align-items:center;gap:clamp(24px,4vw,70px);padding-right:clamp(24px,4vw,70px)}.client-marquee-group img{flex:none;width:clamp(130px,14vw,190px);height:92px;object-fit:contain}.client-marquee:hover .client-marquee-track,.client-marquee:focus-within .client-marquee-track,.client-marquee.is-paused .client-marquee-track{animation-play-state:paused}@keyframes client-slide{to{transform:translateX(-50%)}}@media(max-width:680px){.client-marquee-group img{width:150px;height:78px}.client-marquee-track{animation-duration:36s}.footer-bottom .footer-brand{grid-column:span 2}}@media(prefers-reduced-motion:reduce){.client-marquee{overflow-x:auto;mask-image:none}.client-marquee-track{animation:none;will-change:auto}.client-marquee-group[aria-hidden="true"]{display:none}.marquee-toggle{display:none}}
/* Concrete remains fixed in the viewport only within the original gray folds. */
.manifesto,.featured,.next-project,.bim-feature,.founder{background-image:linear-gradient(rgba(223,225,223,.36),rgba(223,225,223,.36)),url('/assets/concreto-textura.webp');background-position:center,center;background-size:auto,cover;background-attachment:scroll,fixed}


/* Full portrait from the original post; preserve every edge of the photo. */
.manifesto,.featured{background-color:#dfe1df}
.about-photo img{width:100%;height:auto;max-height:850px;aspect-ratio:auto;object-fit:contain}

.footer-credit{border-top:1px solid #656868;margin-top:24px;padding-top:20px;text-align:right;color:#bfc2c0;font-size:.75rem}.footer-credit a{color:#fff;text-decoration:underline;text-underline-offset:3px}.footer-credit a:hover{color:#e98b8b}

/* A narrow red beam traces the existing button outlines. */
@property --beam-angle{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes trace-button-beam{to{--beam-angle:360deg}}
:is(.button,.header-cta,.marquee-toggle,.filters button){position:relative;isolation:isolate}
:is(.button,.header-cta,.marquee-toggle,.filters button)::after{content:"";position:absolute;inset:0;padding:2px;border-radius:inherit;pointer-events:none;background:conic-gradient(from var(--beam-angle),transparent 0deg,transparent 280deg,rgba(224,39,44,.15) 298deg,#e0272c 327deg,#e0272c 342deg,transparent 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;filter:drop-shadow(0 0 4px rgba(224,39,44,.75));animation:trace-button-beam 3.5s linear infinite}
@media(prefers-reduced-motion:reduce){:is(.button,.header-cta,.marquee-toggle,.filters button)::after{animation:none;--beam-angle:320deg}}

/* Scroll entrance: each content group comes into view in sequence. */
.reveal{transition-delay:var(--reveal-delay,0s)}
.hero-kicker{--reveal-delay:0s}.hero h1{--reveal-delay:.13s}.hero-bottom p{--reveal-delay:.25s}.hero-bottom>div{--reveal-delay:.38s}.hero-index{--reveal-delay:.52s}
.manifesto .eyebrow{--reveal-delay:0s}.manifesto .container>.reveal:last-child{--reveal-delay:.12s}
.solution-row:nth-child(2n){--reveal-delay:.09s}.layer:nth-child(2n){--reveal-delay:.08s}.layer-total{--reveal-delay:.16s}
.bim-images figure:nth-child(2){--reveal-delay:.12s}.featured-grid .project-card:nth-child(2){--reveal-delay:.08s}.featured-grid .project-card:nth-child(3){--reveal-delay:.16s}
.about-copy{--reveal-delay:.12s}.quotes blockquote:nth-child(2){--reveal-delay:.12s}
@media(prefers-reduced-motion:reduce){.reveal{transition-delay:0s}}

/* Keep long service titles inside their column before the layout stacks. */
.services-page .service-group-head,.services-page .service-items{min-width:0}
.services-page .service-group-head h2{font-size:clamp(2.7rem,3.1vw,3.65rem);hyphens:auto;overflow-wrap:anywhere}
@media(max-width:1180px){.services-page .service-group{grid-template-columns:minmax(0,1fr);gap:34px}}
