:root{--navy:#071525;--deep:#04101f;--ink:#142232;--blue:#2675ee;--cyan:#78b7ff;--soft:#eff3f7;--muted:#718091;--line:#d7e0e8;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:white;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500}em{font-style:normal;color:var(--muted)}a:focus-visible,button:focus-visible{outline:3px solid #55a4ff;outline-offset:6px}::selection{background:#b8d7ff;color:var(--navy)}.wrap{width:calc(100% - 112px);max-width:1320px;margin-inline:auto}.skip{position:absolute;top:-70px;left:20px;padding:16px;background:white;z-index:100}.skip:focus{top:10px}header{height:91px;background:var(--deep);border-bottom:1px solid #ffffff24;display:flex;align-items:center;justify-content:space-between;padding:0 56px;color:white;position:sticky;top:0;z-index:20}.brand,.brand img{width:220px}.brand img{height:74px;object-fit:contain}nav{display:flex;align-items:center;gap:39px;font-size:15px}nav>a{padding:12px 0}nav>a:hover{color:var(--cyan)}nav .nav-contact{margin-left:18px;border:1px solid #ffffff4a;padding:12px 18px;min-width:135px;display:flex;justify-content:space-between;gap:25px}.menu-toggle{display:none}.hero{background:var(--deep);color:white;min-height:740px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.hero-image{position:absolute;right:0;top:0;width:73%;height:100%;object-fit:cover;object-position:60% 40%;opacity:.93}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#04101f 0%,#04101ff5 20%,#04101fa8 43%,#04101f0a 78%),linear-gradient(0deg,#04101fb8,transparent 30%)}.hero-content{position:relative;padding-top:64px;padding-bottom:105px}.eyebrow,.section-index,.section-label{font-size:13px;font-weight:600;letter-spacing:1.7px;line-height:1.6;color:var(--blue)}.eyebrow.light{color:#c7ddf5;max-width:480px}.hero h1{font-size:clamp(64px,6.5vw,102px);line-height:.99;letter-spacing:-4.5px;margin:31px 0 28px;max-width:650px}.hero h1 span{color:var(--cyan)}.hero-description{max-width:420px;font-size:19px;line-height:1.6;color:#ced8e4}.hero-actions{display:flex;align-items:center;gap:30px;margin-top:33px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:33px;padding:18px 22px;font-size:15px;font-weight:600;background:white;color:var(--ink);transition:background .2s}.button:hover{background:#c9e3ff}.text-link{font-size:15px;border-bottom:1px solid #ffffff66;padding:9px 0}.text-link span{margin-left:15px}.text-link:hover{color:var(--cyan)}.hero-bottom{position:absolute;bottom:29px;left:0;right:0;display:flex;justify-content:space-between;color:#d9e5f1;font-size:12px;letter-spacing:1.5px;gap:25px}.intro,.process{padding-top:99px;padding-bottom:100px}.section-label{display:flex;align-items:center;gap:28px;margin-bottom:41px}.section-label:after{content:'';height:1px;background:var(--line);flex:1}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px}h2{font-size:clamp(36px,4vw,59px);line-height:1.09;letter-spacing:-2px}.intro-copy{padding-top:5px}.intro-copy p{font-size:17px;line-height:1.75;color:#5c6977;margin-bottom:22px}.intro-copy .large-copy{font-size:23px;line-height:1.5;color:var(--ink);margin-bottom:24px}.inline-link{display:inline-flex;align-items:center;gap:28px;font-size:16px;border-bottom:1px solid #a4b7c8;padding-bottom:10px;margin-top:5px}.inline-link:hover{color:var(--blue)}.services{display:grid;grid-template-columns:repeat(4,1fr);margin-top:70px;border-top:1px solid var(--line)}.services article{padding:29px 25px 0;border-left:1px solid var(--line)}.services article:first-child{padding-left:0;border-left:none}.services article:last-child{padding-right:0}.services article>span{font-size:13px;color:var(--blue);display:block;margin-bottom:28px}.services h3{font-size:22px;letter-spacing:-.5px;margin-bottom:15px}.services p{font-size:16px;line-height:1.7;color:#627080}.projects{background:var(--soft);padding:90px 0 55px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin-bottom:45px}.section-heading>p{max-width:330px;font-size:17px;line-height:1.7;color:#667583}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:53px 32px}.wide{grid-column:1/-1}.project-image{overflow:hidden;position:relative;background:#d2dde7;aspect-ratio:1.49}.wide .project-image{aspect-ratio:2.45}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.8,.2,1)}.project-image:hover img{transform:scale(1.025)}.project-image>span{position:absolute;left:18px;bottom:18px;color:white;background:#071525c9;border:1px solid #ffffff50;padding:9px 12px;font-size:13px;letter-spacing:1px}.project-info{padding:23px 0 0}.project h3{font-size:30px;line-height:1.19;letter-spacing:-1px;margin-top:10px}.project-info>p{font-size:16px;line-height:1.7;color:#647181;max-width:500px;margin-top:14px}.wide .project-info{display:grid;grid-template-columns:1fr 1fr;gap:45px}.wide .project-info>p{align-self:center;margin:0;max-width:470px}.project-note{margin-top:57px;padding-top:26px;border-top:1px solid #cbd6df;display:grid;grid-template-columns:190px 1fr auto;align-items:start;gap:20px;font-size:14px;line-height:1.7}.project-note>span{font-size:12px;letter-spacing:1px}.project-note p{color:#667583;max-width:530px}.project-note a{border-bottom:1px solid #859aae;padding-bottom:7px}.project-note a:hover{color:var(--blue)}.cad-section{background:var(--navy);color:white;padding:97px 0}.cad-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:center}.cad-copy .section-index{color:#79b9ff;margin-bottom:25px}.cad-copy h2{font-size:45px;line-height:1.13}.cad-copy em{color:#90a7be}.cad-copy>p:not(.section-index){color:#bbc9d7;font-size:17px;line-height:1.7;margin-top:28px;max-width:460px}.cad-copy ul{padding:0;margin:30px 0 0;list-style:none}.cad-copy li{font-size:15px;padding:13px 0;border-bottom:1px solid #ffffff22;max-width:425px}.cad-copy li:before{content:'+';margin-right:17px;color:#74b2ff}.cad-visual{background:white;overflow:hidden}.cad-visual>img{width:100%;height:390px;object-fit:contain;padding:18px 10px}.cad-caption{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #dfe6ed;padding:18px;color:#3b4d61;font-size:12px;letter-spacing:1px}.process ol{list-style:none;display:grid;grid-template-columns:repeat(6,1fr);padding:0;margin:60px 0 0;border-top:1px solid var(--line)}.process li{padding:20px 22px 0 0;position:relative}.process li:before{content:'';position:absolute;top:-3px;left:0;width:6px;height:6px;background:var(--blue)}.process li span{font-size:13px;color:var(--blue);display:block;margin-bottom:20px}.process li h3{font-size:17px;line-height:1.45;max-width:185px}.team{padding:90px 0;background:var(--soft)}.team .section-heading h2{font-size:52px}.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px}.person-top{display:flex;gap:32px;align-items:center;background:var(--navy);height:275px;margin-bottom:26px;overflow:hidden}.portrait{height:100%;width:56%;max-width:320px;align-self:flex-end;display:flex;align-items:flex-end}.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}.experience{color:white}.experience strong{font-size:64px;line-height:1;font-weight:400;letter-spacing:-3px}.experience span{font-size:12px;letter-spacing:1px;line-height:1.7;display:block;color:#8cb3d7;margin-top:14px}.person h3{font-size:29px;letter-spacing:-.8px}.person .role{color:var(--blue);font-size:16px;margin:12px 0 22px}.person>p{font-size:16px;line-height:1.75;color:#607080;margin-top:15px}.person p.credential{font-size:14px;color:#234967;border-top:1px solid var(--line);padding-top:14px}.partner-note{font-size:16px;line-height:1.8;border-top:1px solid #cbd6df;margin-top:48px;padding-top:27px;color:#607080}.partner-note strong{color:var(--ink);margin-right:12px;font-weight:500}.contact{background:var(--deep);color:white;padding:90px 0 79px}.contact .section-index{color:#82b9ff;margin-bottom:31px}.contact h2{font-size:clamp(52px,7vw,96px);letter-spacing:-4px;line-height:1.02}.contact em{color:#79b5ff}.contact-bottom{border-top:1px solid #ffffff33;display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:53px;padding-top:36px}.contact-bottom>p{font-size:18px;line-height:1.65;max-width:355px;color:#9fadc0}.contact-links{display:flex;flex-direction:column;gap:20px;align-items:flex-start}.contact-links .email{font-size:36px;letter-spacing:-1px;display:flex;justify-content:space-between;width:100%;max-width:480px}.contact-links>a{font-size:20px}.contact-links>a:hover{color:#79b5ff}footer{display:flex;align-items:center;gap:35px;min-height:112px;font-size:14px}.footer-brand{font-size:33px;font-weight:bold;letter-spacing:-2px}.footer-brand span{display:block;font-size:12px;letter-spacing:1px;margin-top:2px}footer p{color:#7c8996;margin-right:auto}footer>a:not(.footer-brand){padding:10px 0}footer>a:hover{color:var(--blue)}
@media(min-width:1600px){header{padding-inline:max(56px,calc((100vw - 1320px)/2))}.hero{min-height:800px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}header{padding:0 32px}.intro-grid{gap:45px}.services h3{font-size:19px}.services article{padding-inline:18px}.cad-grid{gap:35px}.cad-copy h2{font-size:37px}.team-grid{gap:35px}.team .section-heading h2{font-size:43px}.person-top{height:240px;gap:20px}.experience strong{font-size:53px}.person h3{font-size:25px}.project-note{grid-template-columns:150px 1fr}.project-note a{grid-column:2;justify-self:start}.process ol{grid-template-columns:repeat(3,1fr);gap:32px}.process li:nth-child(n+4){border-top:1px solid var(--line)}.hero-image{width:82%}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}header{height:77px;padding:0 20px}.brand,.brand img{width:175px}.menu-toggle{display:flex;gap:15px;align-items:center;border:0;background:none;color:white;font-size:15px;padding:13px 0 13px 15px;min-height:44px}nav{display:none;position:absolute;left:0;right:0;top:77px;padding:23px 25px 30px;background:var(--deep);flex-direction:column;gap:7px;align-items:stretch;border-bottom:1px solid #ffffff40}nav.open{display:flex}nav a{padding:14px 0;font-size:18px}nav .nav-contact{margin:5px 0 0;padding:14px 17px}.hero{min-height:720px}.hero-content{padding-top:46px;padding-bottom:125px}.hero-image{width:100%;opacity:.55;object-position:65% 40%}.hero-shade{background:linear-gradient(90deg,#04101ff5,#04101f66),linear-gradient(0deg,#04101ff2,transparent 70%)}.hero h1{font-size:clamp(61px,11vw,84px);letter-spacing:-3px;line-height:1.02;margin-top:25px}.hero .eyebrow{font-size:12px;letter-spacing:1.3px;max-width:340px}.hero-description{font-size:17px;max-width:355px}.hero-actions{align-items:flex-start;flex-direction:column;gap:14px;margin-top:25px}.button{padding:16px 20px;gap:42px}.hero-bottom{font-size:12px;letter-spacing:.8px;bottom:25px}.hero-caption{display:none}.intro,.process{padding-top:65px;padding-bottom:62px}.section-label{margin-bottom:28px;gap:15px}.section-index,.section-label{font-size:12px;letter-spacing:1.4px}.intro-grid{grid-template-columns:1fr;gap:29px}h2{font-size:43px;letter-spacing:-1.7px}.intro-copy .large-copy{font-size:21px}.intro-copy p{font-size:16px}.services{grid-template-columns:1fr 1fr;margin-top:42px;row-gap:30px}.services article{padding:22px 15px 0}.services article:nth-child(3){border-left:none;padding-left:0;border-top:1px solid var(--line)}.services article:nth-child(4){border-top:1px solid var(--line)}.services article>span{margin-bottom:17px}.services h3{font-size:20px;line-height:1.25}.services p{font-size:16px;line-height:1.65}.projects{padding-top:60px;padding-bottom:40px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:22px;max-width:450px;font-size:16px}.project-grid{grid-template-columns:1fr;gap:35px}.wide{grid-column:auto}.wide .project-image{aspect-ratio:1.4}.project-image{aspect-ratio:1.35}.project-info,.wide .project-info{display:block;padding-top:19px}.project h3{font-size:28px}.wide .project-info>p,.project-info>p{margin-top:12px}.project .eyebrow{font-size:12px;letter-spacing:1.2px}.project-note{grid-template-columns:1fr;gap:13px;margin-top:37px}.project-note a{grid-column:1}.cad-section{padding:60px 0}.cad-grid{grid-template-columns:1fr;gap:30px}.cad-copy h2{font-size:39px}.cad-copy>p:not(.section-index){font-size:16px;margin-top:21px}.cad-visual>img{height:270px}.cad-caption{padding:13px;font-size:12px;gap:10px}.cad-caption>span:last-child{white-space:nowrap}.process ol{grid-template-columns:1fr 1fr;gap:26px 17px;margin-top:37px}.process li{padding-top:15px}.process li:nth-child(n+3){border-top:1px solid var(--line)}.process li span{margin-bottom:11px}.process li h3{font-size:16px}.team{padding:60px 0}.team .section-heading h2{font-size:39px}.team-grid{grid-template-columns:1fr;gap:40px}.person-top{height:265px;gap:32px}.portrait{width:55%}.experience strong{font-size:62px}.person h3{font-size:27px}.person>p{font-size:16px}.person .role{line-height:1.6;margin:8px 0 15px}.partner-note{margin-top:33px;font-size:16px}.partner-note strong{display:block}.contact{padding:61px 0 55px}.contact h2{font-size:clamp(46px,9vw,67px);letter-spacing:-2px}.contact-bottom{grid-template-columns:1fr;gap:28px;margin-top:34px;padding-top:26px}.contact-bottom>p{font-size:16px}.contact-links .email{font-size:32px}.contact-links>a{font-size:19px}footer{padding-block:30px;display:grid;grid-template-columns:1fr 1fr;gap:21px 14px;font-size:14px}footer p{margin:0;text-align:right}footer>a:last-child{text-align:right}.footer-brand{font-size:29px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Independent, touch-friendly project galleries. */
.gallery{position:relative;min-width:0;background:var(--navy)}
.gallery-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;aspect-ratio:1.49;outline-offset:-4px}
.gallery-track::-webkit-scrollbar{display:none}
.gallery-track:focus-visible{outline:3px solid var(--cyan)}
.gallery-slide{flex:0 0 100%;width:100%;min-width:0;height:100%;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center}
.gallery-slide img{width:100%;height:100%;object-fit:contain;user-select:none}
.wide .gallery-track{aspect-ratio:2.05}
.gallery-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 12px;border-top:1px solid #ffffff25;background:var(--navy);color:white}
.gallery-controls[hidden]{display:none}
.gallery-controls button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid #ffffff50;background:transparent;color:white;font-size:24px;cursor:pointer;touch-action:manipulation}
.gallery-controls button:hover{background:#ffffff20;border-color:var(--cyan)}
.gallery-count{min-width:64px;text-align:center;font-size:14px;font-variant-numeric:tabular-nums;letter-spacing:1px}
.gallery-model{background:white}.gallery-model .gallery-track{aspect-ratio:auto;height:390px}
.gallery-model .gallery-slide img{padding:12px}
@media(max-width:760px){.gallery-track,.wide .gallery-track{aspect-ratio:1.35}.gallery-model .gallery-track{height:270px;aspect-ratio:auto}}

/* Compact portraits and persistent navigation. */
.person-top{height:210px;padding:0 24px;gap:32px}
.portrait{height:180px;width:180px;max-width:180px;flex:0 0 180px;align-self:center}
.portrait img{object-fit:contain;object-position:center}
@media(max-width:760px){html{scroll-padding-top:95px}.person-top{height:185px;padding:0 16px;gap:20px}.portrait{height:150px;width:150px;max-width:150px;flex-basis:150px}.experience strong{font-size:48px}}

.engineering-experience{border-top:2px solid var(--blue);padding-top:27px}

.portrait{overflow:hidden}.portrait img{object-fit:cover;object-position:center top;transform:scale(1.6);transform-origin:center top}
