/* Shared closing sections and owner-confirmed client marks. */
.client-strip{margin-top:auto;padding-top:36px;flex-shrink:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.client-track{display:flex;width:max-content;animation:client-drift 38s linear infinite;will-change:transform}
.client-set{display:flex;align-items:center;gap:clamp(40px,6vw,100px);padding-right:clamp(40px,6vw,100px);flex-shrink:0}
.client-wordmark{display:inline-flex;align-items:center;gap:13px;color:#727981;font-family:Urbanist,sans-serif;font-weight:600;font-size:clamp(13px,1.3vw,19px);letter-spacing:.09em;white-space:nowrap}
.client-wordmark svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
@keyframes client-drift{to{transform:translateX(-50%)}}
.client-strip:hover .client-track,.ambient-paused .client-track{animation-play-state:paused}
.contact-section{position:relative;z-index:7;min-height:100svh;display:grid;place-items:center;padding:110px 7% 85px;color:#16171c;background:radial-gradient(ellipse at 58% 52%,#e9e7f5 0,transparent 57%),#f2f2f6;scroll-margin-top:0}
.contact-shell{width:min(850px,100%)}
.contact-composer{width:100%;margin:0;border:1px solid #fff;border-radius:25px;background:#ffffffd9;box-shadow:0 3px 4px #30235703,0 18px 65px #30235706;overflow:hidden}
.contact-motion-ready .contact-composer{clip-path:inset(0 49.8% round 25px);opacity:0}
.contact-motion-ready.contact-arrived .contact-composer{animation:composer-open 950ms cubic-bezier(.22,1,.36,1) forwards}
@keyframes composer-open{0%{opacity:0;clip-path:inset(0 49.8% round 25px)}12%{opacity:1}100%{opacity:1;clip-path:inset(0 0 round 25px)}}
.composer-content{padding:30px 32px 23px}
.contact-composer textarea{display:block;resize:vertical;min-height:140px;max-height:320px;width:100%;border:0;background:transparent;color:#20212a;padding:0;font:400 clamp(19px,2vw,25px)/1.45 Urbanist,sans-serif;outline:0}
.contact-composer textarea::placeholder{color:#92939f;opacity:1}
.contact-composer:focus-within{border-color:#9b9fe9}
.composer-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:17px}
.composer-note{color:#858590;font-family:'IBM Plex Mono',monospace;font-size:10px;line-height:1.6}
.contact-send{border:0;background:none;color:#3157d5;font:500 16px Urbanist,sans-serif;white-space:nowrap;padding:8px 0 8px 18px;cursor:pointer;text-decoration:none}
.contact-send:hover{color:#163eac}.contact-send:disabled{color:#8d8e9b;cursor:wait}
.contact-suggestions{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;padding:22px 18px 0}
.contact-suggestions button{text-align:left;border:0;border-bottom:1px solid #6e6b8a15;background:transparent;color:#6f7180;padding:14px 0;font:400 13px Urbanist,sans-serif;cursor:pointer;transition:color .2s}
.contact-suggestions button:hover,.contact-suggestions button[aria-pressed=true]{color:#3157d5}
.contact-motion-ready .contact-suggestions{opacity:0;transform:translateY(10px);transition:opacity .6s .8s,transform .6s .8s}
.contact-motion-ready.contact-arrived .contact-suggestions{opacity:1;transform:none}
.contact-details{padding-top:14px}.details-intro{font-size:13px;margin:0 0 17px;color:#6f7180}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.contact-fields label{font:10px 'IBM Plex Mono',monospace;color:#70717e}
.contact-fields input{display:block;width:100%;padding:11px 0;border:0;border-bottom:1px solid #c8c9d2;background:transparent;font:400 16px Urbanist,sans-serif;color:#20212a;outline:0;border-radius:0}
.contact-fields input:focus{border-bottom-color:#3157d5}.contact-fields input::placeholder{color:#a0a1ac}
.contact-status{font-size:13px;line-height:1.5;color:#52606b;margin:0}.contact-status:not(:empty){margin-top:16px}.contact-status[data-state=error]{color:#9a4139}
.contact-fallback{font-size:13px;color:#3157d5;display:inline-block;margin-top:8px;text-decoration:none}.contact-fallback[hidden],.contact-details[hidden]{display:none}
.contact-trap{position:absolute;left:-9999px;opacity:0;width:1px;height:1px;pointer-events:none}
.contact-composer button:focus-visible,.contact-suggestions button:focus-visible,.contact-fallback:focus-visible{outline:2px solid #6277d5;outline-offset:5px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ambient-paused .contact-composer{animation-duration:1ms!important}
@media(min-width:701px) and (max-height:760px){.next-chapter{padding-top:90px;padding-bottom:25px}.chapter-heading{margin-bottom:28px}.chapter-heading h2{font-size:clamp(34px,4vw,60px)}.capability-row{padding:13px 0}.chapter-bottom{margin-top:22px}.client-strip{padding-top:23px}.client-wordmark svg{width:26px;height:26px}}
@media(max-width:700px){.next-chapter{padding-bottom:24px}.client-strip{padding-top:22px}.client-wordmark svg{width:25px;height:25px}.contact-section{padding:100px 22px 60px}.composer-content{padding:24px 22px 20px}.contact-composer{border-radius:20px}.contact-composer textarea{min-height:160px;font-size:21px}.composer-note{font-size:9px;max-width:145px}.contact-suggestions{grid-template-columns:1fr;padding:16px 14px 0;gap:0}.contact-suggestions button{padding:13px 0}.contact-fields{grid-template-columns:1fr;gap:18px}}
@media(max-width:700px) and (max-height:740px){.next-chapter{padding-top:83px;padding-bottom:20px}.chapter-heading{margin-bottom:24px}.chapter-heading h2{font-size:32px;margin-bottom:17px}.capability-row{padding:13px 0}.chapter-bottom{margin-top:20px}.chapter-bottom p{margin-bottom:9px}.client-strip{padding-top:18px}.client-wordmark{font-size:12px}}
@media(prefers-reduced-motion:reduce){.client-track{animation:none}.contact-motion-ready .contact-composer{opacity:1;clip-path:none;animation:none}.contact-motion-ready .contact-suggestions{opacity:1;transform:none;transition:none}}
/* Services hold in place, then give way to the architectural impact sequence. */
.next-chapter{overflow:hidden}
.chapter-service-copy{position:relative;z-index:3}
.chapter-service-copy>.chapter-bottom{margin-top:35px}
.chapter-sequence-ready:not(.services-revealed) .chapter-service-copy{visibility:hidden}
.service-wipe{position:relative;overflow:hidden;isolation:isolate;width:fit-content;max-width:100%}
.capability-row .service-wipe:last-child{justify-self:end}
.service-cell-text{position:relative;display:inline-block}
.service-cell-cover{position:absolute;inset:0;background:#131419;z-index:2;pointer-events:none;clip-path:inset(0 0 0 100%)}
.chapter-sequence-ready .client-strip{position:absolute;left:7%;right:7%;bottom:38px;z-index:5;padding-top:10px;--logo-scale:1}
.chapter-sequence-ready .client-wordmark{font-size:calc(clamp(13px,1.3vw,19px)*var(--logo-scale));gap:10px}
.chapter-sequence-ready .client-wordmark svg{width:calc(31px*var(--logo-scale));height:calc(31px*var(--logo-scale))}
.chapter-impact{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.impact-building{position:absolute;left:-2%;bottom:0;width:56%;height:48%;z-index:3;transform:translateY(110%);opacity:0;will-change:transform}
.impact-building .pavilion-art{position:absolute;inset:0;width:100%;height:100%;transform:none;overflow:visible}
.impact-building .pavilion-lines{stroke:#535067!important;stroke-width:1}
.stat-window{position:absolute;inset:12% 0 4%;overflow:hidden;z-index:1}
.impact-stat{position:absolute;left:7%;right:7%;bottom:29%;display:flex;align-items:center;gap:5vw;opacity:0;will-change:transform,opacity}
.impact-stat strong{font:400 clamp(150px,25vw,380px)/.85 Urbanist,sans-serif;letter-spacing:-.085em;color:#272632}
.impact-stat p{font:400 clamp(15px,1.8vw,26px)/1.4 Urbanist,sans-serif;color:#60606d;margin:0;max-width:310px}
.contact-shell{width:min(60vw,920px)}
.contact-composer{border-color:#17182028}
.contact-suggestions{grid-template-columns:1fr;padding:18px 18px 0;gap:0}
.contact-suggestions button{display:flex;flex-direction:column;gap:5px;padding:15px 0}
.contact-suggestions button span{font-size:16px;color:#555767}
.contact-suggestions button small{font:400 14px/1.5 Urbanist,sans-serif;color:#90909c}
.contact-suggestions button:hover span,.contact-suggestions button[aria-pressed=true] span{color:#3157d5}
@media(max-width:700px){.contact-shell{width:100%}.chapter-service-copy>.chapter-bottom{margin-top:26px}.chapter-sequence-ready .client-strip{left:22px;right:22px;bottom:25px}.chapter-sequence-ready .client-wordmark{font-size:calc(12px*var(--logo-scale))}.chapter-sequence-ready .client-wordmark svg{width:calc(25px*var(--logo-scale));height:calc(25px*var(--logo-scale))}.impact-building{width:63%;left:-6%;height:35%;bottom:20px}.impact-stat{display:block;bottom:33%;left:8%}.impact-stat strong{font-size:42vw}.impact-stat p{font-size:16px;margin-top:23px}.capability-row .service-wipe:last-child{justify-self:initial}}
@media(max-width:700px) and (max-height:740px){.chapter-service-copy>.chapter-bottom{margin-top:20px}}

.stat-disclosure{position:absolute;right:7%;top:17%;font:11px 'IBM Plex Mono',monospace;color:#85858f;opacity:0}
.stat-percent strong{font-size:clamp(130px,21vw,320px)}.stat-revenue strong{font-size:clamp(130px,22vw,330px)}
@media(max-width:700px){.stat-disclosure{top:20%;right:8%;font-size:9px}.stat-percent strong,.stat-revenue strong{font-size:34vw}}

/* Solid, edge-cropped architecture and monoline hero numerals. */
.impact-building{left:-8%;bottom:-12%;width:70%;height:60%;transform:none;will-change:opacity}
.impact-building .pavilion-art{overflow:visible}
.impact-stat{bottom:39%;gap:3vw}
.impact-stat strong,.stat-percent strong,.stat-revenue strong{display:block;width:36vw;max-width:560px;flex:none;font-size:inherit;line-height:1;letter-spacing:0}
.angular-number{display:block;width:100%;height:auto;overflow:visible}
.contact-section{margin-top:0;overflow:clip;background:#f2f2f6}
/* Separate light spacer keeps the composer entrance clear of the prior chapter. */
.contact-gap{height:8svh;background:#f2f2f6;position:relative;z-index:7}
.contact-composer{border:0;background:#fff;box-shadow:none}
.contact-composer:focus-within{outline:1px solid #9b9fe9;outline-offset:3px}
.contact-motion-ready .contact-composer{clip-path:none;opacity:0;transform:translateY(28svh)}
.contact-motion-ready.contact-arrived .contact-composer{animation:composer-rise 850ms cubic-bezier(.22,1,.36,1) forwards}
@keyframes composer-rise{from{opacity:0;transform:translateY(28svh)}to{opacity:1;transform:translateY(0)}}
.contact-suggestions button{flex-direction:row;align-items:baseline;gap:14px;border:0;white-space:nowrap;padding:12px 0}
.contact-suggestions button span{flex-shrink:0}
.contact-suggestions button small{min-width:0;overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){.impact-building{width:93%;left:-20%;height:43%;bottom:-7%}.impact-stat{bottom:36%;left:8%}.impact-stat strong,.stat-percent strong,.stat-revenue strong{width:68vw;max-width:none}.impact-stat p{margin-top:10px}.contact-gap{height:6svh}.contact-suggestions{padding-inline:0}.contact-suggestions button{gap:10px}.contact-suggestions button span{font-size:14px}.contact-suggestions button small{font-size:12px}}
@media(prefers-reduced-motion:reduce){.contact-motion-ready .contact-composer,.contact-motion-ready.contact-arrived .contact-composer{opacity:1;transform:none;animation:none}}

/* The closing stage clears completely before normal scrolling resumes. */
.next-chapter,.contact-gap,.contact-section{border:0;outline:0;box-shadow:none}
.impact-building{overflow:hidden}
.impact-building .pavilion-art{overflow:hidden}
.stat-contexts{position:absolute;top:18%;right:var(--pad);width:min(310px,29vw);z-index:4}
.stat-context{position:absolute;inset:0 0 auto;margin:0;white-space:pre-line;text-align:right;font:400 11px/1.85 'IBM Plex Mono',monospace;color:#656570;opacity:0;will-change:transform,opacity}
@media(max-width:700px){.stat-contexts{top:15%;right:var(--pad);width:80%}.stat-context{font-size:10px;line-height:1.75}}

/* Keep the complete composer in view through a short scroll interval. */
.contact-hold{position:relative;z-index:7;height:175svh;background:#f2f2f6}
.contact-hold .contact-section{position:sticky;top:0;height:100svh;min-height:0;padding:calc(var(--header) + 24px) 7% 32px;overflow:hidden}
.contact-hold .contact-shell{max-height:100%;overflow-y:auto;scrollbar-width:thin;padding:5px}
@media(max-width:700px){.contact-hold .contact-section{padding:calc(var(--header) + 16px) 22px 24px}.contact-hold .contact-composer textarea{min-height:120px;max-height:24svh}}
@media(prefers-reduced-motion:reduce){.contact-hold{height:auto}.contact-hold .contact-section{position:relative;height:auto;min-height:100svh}.contact-hold .contact-shell{max-height:none;overflow:visible}}

/* Bring the prompts closer to the composer and to one another. */
.contact-suggestions{padding-top:8px}
.contact-suggestions button{padding:7px 0;gap:10px;min-height:36px}
.contact-motion-ready .contact-suggestions{transition-delay:.45s}
@media(max-width:700px){.contact-suggestions{padding-top:6px}.contact-suggestions button{gap:8px;min-height:40px}}

.contact-motion-ready.contact-arrived.contact-settled .contact-composer{animation:none;opacity:1;transform:none}

/* Original logo artwork, rendered in the strip's restrained monochrome. */
.client-set{min-width:86vw;justify-content:space-around}
.client-logo img{display:block;width:auto;height:calc(42px * var(--logo-scale,1));max-width:220px;object-fit:contain;filter:grayscale(1) brightness(0);opacity:.5}
.client-logo img[src*="first-abu"]{height:calc(48px * var(--logo-scale,1))}
@media(max-width:700px){.client-logo img{height:calc(32px * var(--logo-scale,1));max-width:160px}.client-logo img[src*="first-abu"]{height:calc(40px * var(--logo-scale,1))}}

/* Explicit light controls override inherited dark browser/autofill treatment. */
.contact-composer{color-scheme:light}
.contact-fields input,.contact-composer textarea{background:#fff;color:#20212a;caret-color:#20212a;-webkit-text-fill-color:#20212a}
.contact-fields input:-webkit-autofill,.contact-fields input:-webkit-autofill:hover,.contact-fields input:-webkit-autofill:focus{box-shadow:0 0 0 1000px #fff inset!important;-webkit-text-fill-color:#20212a!important;caret-color:#20212a}
.contact-fields input:autofill{background:#fff!important;color:#20212a!important;box-shadow:0 0 0 1000px #fff inset}

/* Seven unique marks: no cloned rows, with a measured return journey. */
.client-track{animation:none}
.client-set{min-width:0;justify-content:flex-start;gap:clamp(42px,5vw,76px);padding:0 10px}
.client-overflow .client-track{animation:client-journey 26s ease-in-out 1s infinite alternate}
@keyframes client-journey{0%,8%{transform:translateX(0)}92%,100%{transform:translateX(var(--client-travel,0px))}}
.client-logo{flex:0 0 auto}
.client-logo img{height:calc(34px * var(--logo-scale,1));max-width:160px;width:auto}
.client-logo img[src*="first-abu"]{height:calc(46px * var(--logo-scale,1))}
@media(max-width:700px){.client-set{gap:36px}.client-logo img{height:calc(28px * var(--logo-scale,1));max-width:135px}.client-logo img[src*="first-abu"]{height:calc(38px * var(--logo-scale,1))}}
@media(prefers-reduced-motion:reduce){.client-overflow .client-track{animation:none}.client-strip{overflow-x:auto;scrollbar-width:thin}.client-track{transform:none}}

/* Match the optical weight of the surrounding client marks. */
.client-logo img[src*="nexa"]{height:calc(25px * var(--logo-scale,1));max-width:125px}
.client-logo img[src*="upwork"]{height:calc(28px * var(--logo-scale,1));max-width:135px}
.blue-wordmark{display:flex;gap:calc(8px * var(--logo-scale,1));height:calc(34px * var(--logo-scale,1));align-items:center;filter:grayscale(1) brightness(0);opacity:.5}
.blue-wordmark span{display:block;height:calc(34px * var(--logo-scale,1));width:calc(30px * var(--logo-scale,1));background:url('/assets/clients/blue.png') no-repeat;background-size:calc(114.6px * var(--logo-scale,1)) calc(34px * var(--logo-scale,1))}
.blue-wordmark span:first-child{background-position:calc(-9.5px * var(--logo-scale,1)) 0}
.blue-wordmark span:last-child{background-position:calc(-76px * var(--logo-scale,1)) 0}
@media(max-width:700px){.client-logo img[src*="nexa"]{height:22px;max-width:110px}.client-logo img[src*="upwork"]{height:24px;max-width:115px}}

/* A continuous row at every viewport width, with no stationary overflow threshold. */
.client-track,.client-overflow .client-track{animation:client-loop 32s linear infinite}
.client-set{padding:0 clamp(21px,2.5vw,38px);flex-shrink:0}
@keyframes client-loop{to{transform:translateX(var(--client-loop,-50%))}}
@media(prefers-reduced-motion:reduce){.client-track,.client-overflow .client-track{animation:none;transform:none}.client-set[aria-hidden]{display:none}}
