@font-face{font-family:Barlow;src:url(fonts/Barlow-Regular.ttf) format('truetype');font-display:swap}
:root{--navy:#071d35;--ink:#102c47;--muted:#596b7b;--paper:#fafbf9;--line:#d7dfe4;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 Barlow,Arial,sans-serif}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.1;letter-spacing:-.045em}h2{font-size:clamp(35px,4vw,60px)}h3{font-size:30px}p+p{margin-top:18px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #77b6e6;outline-offset:5px}.wrap{width:min(1320px,calc(100% - 100px));margin:auto}header{background:var(--navy);color:white}.header-inner{height:115px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{background:white;padding:7px 11px;border-radius:8px;flex-shrink:0}.brand img{width:132px;height:auto}.header-inner nav{display:flex;gap:48px}.header-inner nav a{position:relative;font-size:15px;padding:8px 0}.header-inner nav a:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:white;transform:scaleX(0);transform-origin:left;transition:transform .3s}.header-inner nav a:hover:after,.header-inner nav a[aria-current]:after{transform:scaleX(1)}.header-cta,.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;background:white;color:var(--navy);padding:13px 25px;border:0;border-radius:40px;font-size:15px;transition:background .25s,transform .3s}.button span,.header-cta span,.text-link span{display:inline-block;transition:transform .3s}.button:hover span,.header-cta:hover span,.text-link:hover span{transform:translate(3px,-3px)}.button:hover,.header-cta:hover{background:#dceaf4}.hero{background:var(--navy);color:var(--paper);overflow:hidden;padding-bottom:32px}.hero-content{text-align:center;padding:36px 0 60px}.hero-kicker{font-size:13px;color:#b5c8d8;letter-spacing:.06em;margin-bottom:26px}.hero h1{font-size:clamp(64px,8.3vw,126px);line-height:.98;letter-spacing:-.055em}.hero-description{font-size:19px;color:#d2dee8;margin:28px 0 25px;line-height:1.6}.showcase-wrap{width:calc(100% - 64px);max-width:1500px;margin:auto;transform:scale(var(--showcase-scale,.94));transform-origin:center top}.showcase{position:relative;border-radius:26px;overflow:hidden;background:#17354e;height:clamp(380px,48vw,700px)}#showcase-image{width:100%;height:100%;object-fit:cover}.showcase:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#041b3166);pointer-events:none}.showcase-caption{position:absolute;z-index:2;bottom:26px;left:26px;padding:19px 26px;background:#071d35db;backdrop-filter:blur(10px);border:1px solid #ffffff22;border-radius:16px}.showcase-caption h2{font:20px Barlow,Arial,sans-serif;letter-spacing:.04em}.showcase-caption p{font-size:14px;color:#d2dee8;margin-top:4px}.showcase-detail{position:absolute;right:28px;bottom:120px;width:19%;height:34%;object-fit:cover;border:3px solid #ffffffd9;border-radius:20px;box-shadow:0 12px 40px #071d3544;transform:translateY(var(--detail-shift,0px))}.showcase-controls{position:absolute;z-index:3;bottom:28px;right:28px;display:flex;align-items:center;gap:14px}.showcase-controls button{border:1px solid #ffffff66;width:48px;height:48px;border-radius:50%;background:var(--navy);color:white;font-size:23px}.showcase-controls span{font-size:13px;background:#071d35b0;padding:5px 10px;border-radius:20px}.section{padding-top:100px;padding-bottom:100px}.intro{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.intro-copy{max-width:530px;color:var(--muted)}.intro-copy .lead{font-size:24px;color:var(--ink);line-height:1.4;margin-bottom:18px}.work-section{background:#eaf0f3;border-radius:36px 36px 0 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:45px;margin-bottom:45px}.section-heading h2{max-width:620px}.text-link{display:inline-flex;gap:24px;border-bottom:1px solid;padding-bottom:8px;white-space:nowrap;font-size:15px}.featured-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:42px}.featured-grid .project-card:first-child{grid-column:span 2}.project-image{display:block;width:100%;padding:0;border:0;border-radius:19px;overflow:hidden;position:relative;background:#d7dfe4}.project-image img{width:100%;aspect-ratio:1.5;object-fit:cover;transition:transform .8s var(--ease)}.featured-grid .project-card:first-child img{aspect-ratio:2.4}.project-image:hover img{transform:scale(1.045)}.image-arrow{position:absolute;right:20px;bottom:20px;display:grid;place-items:center;width:45px;height:45px;border-radius:50%;background:white;color:var(--navy);font-size:24px}.project-meta{margin-top:20px}.project-meta p{font-size:14px;color:var(--muted);margin-bottom:8px}.project-meta h3{font-size:31px}.capabilities{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start}.capabilities img{width:100%;height:330px;object-fit:cover;border-radius:20px;margin-top:35px}.capability-list article{padding:27px 0;border-bottom:1px solid var(--line)}.capability-list article:first-child{padding-top:0}.capability-list h3{font-size:27px;margin-bottom:14px}.capability-list p{color:var(--muted);font-size:16px}.capability-list .button{background:var(--navy);color:white;margin-top:32px}footer{background:var(--navy);color:var(--paper);padding:75px 0 0;border-radius:32px 32px 0 0}.footer-top{display:flex;align-items:end;justify-content:space-between;gap:40px;padding-bottom:45px}.footer-title{display:flex;align-items:center;gap:45px;font-family:Georgia,serif;font-size:clamp(40px,5vw,76px);line-height:1.05;letter-spacing:-.05em}.footer-title span{font:60px Barlow,Arial,sans-serif;color:#9ebed8}.footer-email{font-size:18px;border-bottom:1px solid #93a9bb;padding-bottom:6px}.footer-address{padding-bottom:40px}.company-address{font-style:normal;line-height:1.7;color:var(--muted)}footer .company-address{color:#b8c9d7;font-size:15px}.footer-bottom{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #ffffff25;padding:25px 0;color:#b8c9d7;font-size:12px}.footer-bottom strong{font-weight:400}.page-heading{text-align:center;background:var(--navy);color:white;width:100%;max-width:none;padding:60px 35px 85px;margin-bottom:65px}.page-heading h1{font-size:clamp(55px,7vw,104px)}.page-heading-bottom{margin-top:28px;color:#bed0df}.portfolio-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px 40px;padding-bottom:100px}.portfolio-grid .project-card:nth-child(3n+1){grid-column:span 2}.portfolio-grid .project-card:nth-child(3n+1) img{aspect-ratio:2.3}.contact-page main{background:var(--navy);color:white;padding:30px 0 90px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.contact-copy{padding-top:30px}.contact-copy h1{font-size:clamp(46px,4.6vw,69px)}.contact-intro{margin-top:28px;color:#bed0df;max-width:440px}.contact-location{margin:32px 0}.contact-location h2{font:17px Barlow,Arial,sans-serif;letter-spacing:0;margin-bottom:10px}.contact-copy .company-address{color:#bed0df}.address-map{display:inline-block;margin-top:10px;text-decoration:underline;text-underline-offset:5px;font-size:14px}.contact-email{font-size:21px}.contact-copy img{width:100%;height:220px;object-fit:cover;margin-top:35px;border-radius:20px}.form-panel{background:var(--paper);color:var(--ink);padding:40px;border-radius:24px}.form-panel h2{font-size:42px;margin-bottom:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font-size:14px;margin-bottom:20px}label span{color:var(--muted)}input,textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:white;padding:12px;margin-top:7px;color:var(--ink);font-size:16px}textarea{resize:vertical}.form-note,.mail-notice{font-size:13px;color:var(--muted);margin-bottom:20px}.mail-notice{padding:12px 15px;background:#e7eff4;border-radius:8px}.mail-notice a{text-decoration:underline}.form-panel .button{background:var(--navy);color:white;width:100%}#form-status{font-size:14px;margin-top:18px}#form-status a{text-decoration:underline}.trap{position:absolute;left:-9999px}.skip{position:fixed;top:-100px;left:15px;z-index:100;background:white;color:var(--navy);padding:10px}.skip:focus{top:10px}dialog{border:1px solid #ffffff30;border-radius:20px;background:var(--navy);color:white;width:min(1100px,calc(100% - 30px));max-height:94vh;padding:20px}dialog::backdrop{background:#031324e8;backdrop-filter:blur(8px)}.gallery-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:20px}.gallery-top h2{font-size:27px}.gallery-close,.gallery-controls button{width:44px;height:44px;border:1px solid #ffffff55;background:transparent;color:white;border-radius:50%;font-size:23px}#gallery-image{height:65vh;width:100%;object-fit:contain}.gallery-controls{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:16px}.gallery-controls p{font-size:14px}
@keyframes enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:no-preference){.hero-content{animation:enter 1s var(--ease) both}.page-heading h1,.contact-copy h1{animation:enter .8s var(--ease) both}dialog[open]{animation:enter .3s var(--ease)}}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.header-inner nav{gap:25px}.header-cta{display:none}.intro,.capabilities,.contact-layout{gap:40px}.form-panel{padding:28px}.hero h1{font-size:85px}.footer-top{align-items:start;flex-direction:column}.contact-copy h1{font-size:48px}}
@media(max-width:600px){body{font-size:16px}.wrap{width:calc(100% - 36px)}.header-inner{height:90px;gap:16px}.brand{padding:5px 7px}.brand img{width:98px}.header-inner nav{gap:17px}.header-inner nav a{font-size:13px}.hero-content{padding:30px 0 40px}.hero-kicker{font-size:11px;margin-bottom:23px}.hero h1{font-size:clamp(52px,11.4vw,70px)}.hero-description{font-size:16px;margin-top:23px}.showcase-wrap{width:calc(100% - 24px)}.showcase{height:440px;border-radius:18px}.showcase-detail{width:30%;height:26%;right:14px;bottom:125px;border-radius:12px}.showcase-caption{left:14px;bottom:76px;padding:12px 16px;max-width:70%;border-radius:10px}.showcase-caption h2{font-size:17px}.showcase-caption p{font-size:12px}.showcase-controls{bottom:16px;right:14px}.showcase-controls button{width:40px;height:40px}.section{padding:60px 0}.intro,.capabilities,.contact-layout{grid-template-columns:1fr;gap:30px}.intro-copy .lead{font-size:22px}.section-heading{flex-direction:column;align-items:start;gap:24px}.featured-grid,.portfolio-grid{grid-template-columns:1fr;gap:35px}.featured-grid .project-card:first-child,.portfolio-grid .project-card:nth-child(3n+1){grid-column:auto}.featured-grid .project-card:first-child img,.portfolio-grid .project-card:nth-child(3n+1) img{aspect-ratio:1.35}.project-meta h3{font-size:27px}.capabilities img{height:240px}.page-heading{padding:40px 20px 55px;margin-bottom:35px}.page-heading h1{font-size:55px}.portfolio-grid{padding-bottom:60px}.contact-page main{padding-top:10px;padding-bottom:45px}.contact-copy h1{font-size:48px}.form-panel{padding:28px 20px}.form-grid{gap:12px}.form-panel h2{font-size:36px}footer{padding-top:50px}.footer-title{font-size:44px;gap:20px}.footer-title span{font-size:40px}.footer-bottom{flex-direction:column;gap:10px}.footer-bottom span{display:none}#gallery-image{height:58vh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.showcase-wrap,.showcase-detail{transform:none!important}.project-image:hover img{transform:none}}
/* Reference-matched composition: centered project selector, four staggered image columns. */
.portfolio-page .page-heading{margin-bottom:0;padding-bottom:55px}.photo-journey{height:560svh;background:var(--navy);color:white;position:relative}.photo-stage{height:100svh;position:sticky;top:0;overflow:hidden}.journey-columns{position:absolute;inset:0}.journey-column{position:absolute;top:0;width:17%;display:flex;flex-direction:column;gap:70px;will-change:transform}.journey-column-0{left:-1%}.journey-column-1{left:20%}.journey-column-2{right:20%}.journey-column-3{right:-1%}.journey-tile{display:block;width:100%;aspect-ratio:.75;border:0;padding:0;background:#15344c;flex-shrink:0;overflow:hidden}.journey-tile img{height:100%;width:100%;object-fit:cover;transition:transform .6s var(--ease)}.journey-tile:hover img{transform:scale(1.04)}.journey-menu{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:24%;text-align:center;z-index:2}.journey-menu>p{font-size:12px;color:#b7ccdd;margin-bottom:18px}.journey-names{display:flex;flex-direction:column;gap:7px}.journey-name{border:0;background:transparent;color:#8c9faf;font:clamp(13px,1.3vw,20px)/1.2 Barlow,Arial,sans-serif;padding:13px 14px;border-radius:40px;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:45px;transition:background .3s,color .3s}.journey-name span{display:none}.journey-name[aria-pressed=true]{background:#23394e;color:white}.journey-name[aria-pressed=true] span{display:grid;place-items:center;background:white;color:var(--navy);border-radius:50%;width:29px;height:29px;flex-shrink:0}.journey-name:hover{color:white}.journey-all{display:inline-block;font-size:12px;color:#b7ccdd;margin-top:22px;text-decoration:underline;text-underline-offset:5px}.portfolio-list-heading{padding:70px 0 40px;display:flex;align-items:end;justify-content:space-between;gap:25px}.portfolio-list-heading h2{font-size:42px}.portfolio-list-heading p{font-size:15px;color:var(--muted)}#all-projects{scroll-margin-top:25px}
@media(max-width:700px){.photo-journey{height:430svh}.journey-column{width:27%;gap:40px}.journey-column-0{left:-5%}.journey-column-3{right:-5%}.journey-column-1,.journey-column-2{display:none}.journey-tile{aspect-ratio:.6}.journey-menu{width:51%}.journey-name{font-size:14px;padding:10px 8px;min-height:43px}.journey-names{gap:4px}.journey-name[aria-pressed=true] span{width:23px;height:23px}.portfolio-list-heading{flex-direction:column;align-items:start;padding-top:45px;gap:15px}.portfolio-list-heading h2{font-size:35px}}
@media(prefers-reduced-motion:reduce){.photo-journey{height:auto;padding:45px 18px}.photo-stage{height:auto;position:relative;overflow:visible}.journey-columns{display:none}.journey-menu{position:relative;top:auto;left:auto;transform:none;width:min(420px,100%);margin:auto}.journey-name{color:#b7ccdd}.journey-name span{display:inline}.journey-name[aria-pressed=true]{background:transparent}}
/* Real photograph crops separate, enlarge, and rejoin the full composition. */
.showcase{background:#102d46}#showcase-image{transition:transform 1.1s var(--ease),filter 1.1s var(--ease);transform-origin:center}.engineering-layers{position:absolute;inset:0;pointer-events:none;z-index:2}.engineering-crop{position:absolute;background-image:var(--engineering-photo);background-size:300% auto;background-repeat:no-repeat;width:23%;height:37%;border:2px solid #fff;border-radius:12px;box-shadow:0 20px 55px #00152c66;opacity:0;transition:transform 1.1s var(--ease),opacity .65s ease}.crop-a{left:24%;top:27%;background-position:22% 50%;transform:scale(.6)}.crop-b{right:24%;top:30%;background-position:78% 60%;transform:scale(.6)}.details-open #showcase-image{transform:scale(.78);filter:brightness(.8)}.details-open .crop-a{opacity:1;transform:translate(-65%,-30%) rotate(-6deg) scale(1.12)}.details-open .crop-b{opacity:1;transform:translate(65%,7%) rotate(6deg) scale(1.12)}.showcase-detail{transition:opacity .6s}.details-open .showcase-detail{opacity:0}.showcase-caption,.showcase-controls{z-index:4}.layer-pause{position:absolute;z-index:5;top:18px;right:18px;background:#071d35ce;color:white;border:1px solid #ffffff66;border-radius:25px;font-size:12px;padding:8px 14px;backdrop-filter:blur(8px)}
@media(max-width:600px){.engineering-crop{width:30%;height:29%;background-size:auto 220%}.crop-a{left:24%;top:25%}.crop-b{right:24%;top:32%}.details-open .crop-a{transform:translate(-48%,-25%) rotate(-5deg)}.details-open .crop-b{transform:translate(48%,8%) rotate(5deg)}.layer-pause{top:12px;right:12px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.engineering-layers,.layer-pause{display:none}.details-open #showcase-image{transform:none;filter:none}.details-open .showcase-detail{opacity:1}}
