@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/dm-sans.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(fonts/manrope.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{--navy:#081b30;--ink:#122b43;--blue:#1758bd;--muted:#617284;--line:#dce3e9;--paper:#f3f5f6;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:white;font-family:'DM Sans',Arial,sans-serif;font-size:17px;line-height:1.65}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #4285fa;outline-offset:5px}.skip{position:absolute;left:20px;top:-90px;background:white;padding:15px;z-index:100}.skip:focus{top:8px}.wrap{width:min(1320px,calc(100% - 96px));margin:auto}.topline{background:var(--navy);color:#c7d6e5;font-size:12px;letter-spacing:.09em;padding:9px 0}.topline .wrap{display:flex;justify-content:space-between}.header{background:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}.nav{height:90px;display:flex;align-items:center;gap:36px}.brand{display:flex;align-items:center;gap:16px;margin-right:auto}.brand img{width:88px;height:70px;object-fit:contain}.brand span{font-size:12px;font-weight:700;letter-spacing:.08em;line-height:1.5;max-width:135px}.links{display:flex;align-items:center;gap:27px;font-size:14px;font-weight:600}.links a:hover{color:var(--blue)}.lang{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:700;white-space:nowrap}.lang a{padding:5px 6px}.lang .active{background:#edf2fa;color:var(--blue)}.menu{display:none;border:1px solid var(--line);background:white;padding:9px 12px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;background:var(--blue);color:white;font-size:14px;font-weight:600;min-height:48px;border:1px solid transparent;transition:background .2s,transform .2s}.btn:hover{background:#11469a;transform:translateY(-2px)}.btn.light{background:white;color:var(--navy)}.btn.ghost{background:transparent;border-color:#6f8092;color:white}.hero{background:var(--navy);color:white;position:relative;overflow:hidden}.hero-grid{display:grid;grid-template-columns:46% 54%;min-height:670px}.hero-copy{padding:76px 42px 80px max(48px,calc((100vw - 1320px)/2));position:relative;z-index:2;background:linear-gradient(100deg,#081b30,#0b243e)}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;display:flex;align-items:center;gap:12px;color:var(--blue);margin:0 0 25px}.eyebrow:before{content:'';width:25px;height:2px;background:currentColor;flex-shrink:0}.hero .eyebrow{color:#a7c6ed}h1,h2,h3{font-family:Manrope,Arial,sans-serif;line-height:1.14;letter-spacing:-.045em;margin:0;font-weight:500}h1{font-size:clamp(42px,4.5vw,70px);max-width:610px}h1 em{font-style:normal;color:#a1bddd}h2{font-size:clamp(34px,3.3vw,51px)}h3{font-size:24px;letter-spacing:-.025em}.lead{font-size:17px;max-width:455px;color:#beccda;margin:28px 0 32px}.actions{display:flex;flex-wrap:wrap;gap:12px}.hero-image{position:relative;min-height:600px}.hero-image>img{height:100%;width:100%;object-fit:cover;object-position:60% center}.hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,17,31,.72),transparent 45%),linear-gradient(90deg,rgba(8,27,48,.2),transparent)}.image-caption{position:absolute;z-index:2;bottom:32px;left:36px;right:28px;display:flex;align-items:end;justify-content:space-between;color:white}.image-caption span{font-size:12px;letter-spacing:.12em;text-transform:uppercase}.image-caption b{font-size:13px;font-weight:500;display:block;margin-top:8px;letter-spacing:0}.hero-index{font-size:34px!important;color:#cad9e5}.hero-foot{display:flex;gap:18px;align-items:center;border-top:1px solid #304257;padding-top:22px;margin-top:46px;font-size:12px;color:#aabbcd;letter-spacing:.06em}.hero-foot strong{font-size:23px;color:white;font-family:Manrope,sans-serif;font-weight:500}.credentials{background:#eef2f6;border-bottom:1px solid var(--line)}.cred-grid{display:grid;grid-template-columns:repeat(3,1fr)}.cred{padding:29px 35px;border-right:1px solid #d6dfe7;display:flex;gap:20px;align-items:center}.cred:first-child{padding-left:0}.cred:last-child{border:0}.cred b{font-size:23px;font-weight:500;line-height:1.15}.cred span{font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:#546a7d;max-width:160px;line-height:1.5}.section{padding:105px 0}.section-head{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:48px}.section-head h2{max-width:670px}.section-head>p{max-width:370px;color:var(--muted);font-size:16px;margin:0}.about-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:80px;align-items:center}.about-photo{position:relative;padding-bottom:32px}.about-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}.since{position:absolute;bottom:0;right:-25px;background:var(--blue);color:white;padding:22px 30px;min-width:175px}.since span{display:block;font-size:12px;letter-spacing:.12em}.since b{font-size:45px;line-height:1.1;font-weight:500}.copy p{color:var(--muted);margin:25px 0}.text-link{display:inline-block;color:var(--blue);font-size:14px;font-weight:700;border-bottom:1px solid #91add7;padding-bottom:7px}.mini-label{margin-top:30px;padding-top:25px;border-top:1px solid var(--line);font-size:13px;font-weight:600;letter-spacing:.03em}.services{background:var(--paper)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service{background:white}.service-image{overflow:hidden}.service img{width:100%;aspect-ratio:1.5;object-fit:cover;transition:transform .5s}.service:hover img{transform:scale(1.035)}.service-body{padding:30px}.number{display:block;color:#718395;font-size:12px;letter-spacing:.12em;margin-bottom:17px}.service p{font-size:15px;color:var(--muted);margin:18px 0 0}.scope-more{margin-top:25px;border-top:1px solid #cfd9e1}.scope-more summary{padding:22px 0;cursor:pointer;font-weight:600;font-size:15px}.scope-more ul{margin:0;padding:0 0 15px 22px;color:var(--muted);display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:15px}.projects{background:var(--navy);color:white}.projects .eyebrow{color:#9cbbe1}.projects .section-head>p{color:#aabcce}.project-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:28px}.project-card{display:block;background:none;border:0;color:inherit;text-align:left;padding:0;width:100%}.project-card img{width:100%;aspect-ratio:1.65;object-fit:cover;transition:filter .25s}.project-card:hover img{filter:brightness(1.1)}.project-card:first-child{grid-row:span 2}.project-card:first-child img{aspect-ratio:.92}.project-caption{display:flex;gap:20px;justify-content:space-between;border-bottom:1px solid #30455b;padding:20px 0}.project-caption h3{font-size:22px}.project-caption span{color:#9bb2c9;font-size:12px}.project-caption .view{align-self:center;white-space:nowrap;font-size:12px}.facility-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.facility-card{background:var(--paper);padding:38px}.facility-card .big{font-size:65px;line-height:1.1;font-family:Manrope,sans-serif;letter-spacing:-.05em}.facility-card .big span{font-size:25px;color:var(--muted)}.facility-card>p{color:var(--muted);font-size:15px}.capability{border-top:1px solid var(--line);padding:16px 0;font-size:15px;display:flex;gap:20px}.capability span{font-size:12px;color:#7a8b9a}.facility-photo{margin-top:25px;width:100%;aspect-ratio:2.3;object-fit:cover;object-position:center}.contact{padding:78px 0;background:#eaf0f7}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact h2{max-width:490px}.contact-intro{color:var(--muted);margin:25px 0}.contact-details{border-top:1px solid #c5d0dd}.contact-row{padding:22px 0;border-bottom:1px solid #c5d0dd}.contact-row h3{font-size:14px;letter-spacing:0;font-weight:700;margin-bottom:10px}.contact-row p{font-size:15px;margin:0;color:#546a7c}.contact-row a:hover{text-decoration:underline}.email{overflow-wrap:anywhere;color:var(--blue);font-size:18px}footer{background:#061727;color:#aec0d2;padding:50px 0 24px}.footer-top{display:flex;justify-content:space-between;gap:35px;padding-bottom:36px}.footer-brand{font-family:Manrope,sans-serif;color:white;font-size:23px}.footer-top p{font-size:13px;max-width:300px}.footer-links{display:flex;gap:25px;align-items:start;font-size:13px;flex-wrap:wrap}.footer-bottom{border-top:1px solid #2a3a4d;padding-top:22px;display:flex;justify-content:space-between;font-size:12px}.dialog{border:0;padding:0;background:#071a2e;color:white;width:min(1100px,94vw);max-height:93vh}.dialog::backdrop{background:rgba(0,10,20,.87)}.dialog img{width:100%;max-height:72vh;object-fit:contain;background:#04111f}.dialog p{padding:0 25px;font-size:15px}.close{position:absolute;right:12px;top:12px;padding:9px 15px;border:1px solid #ced9e2;background:white;color:#10283f;font-size:14px}.noscript{padding:15px;background:#edf2fa}.reveal{animation:appear .7s ease both}@keyframes appear{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@media(min-width:1600px){.hero-grid{min-height:740px}.hero-copy{padding-top:95px}}@media(max-width:1150px){.wrap{width:calc(100% - 56px)}.brand span{display:none}.nav{gap:22px}.links{gap:19px}.hero-copy{padding-left:28px;padding-right:28px}.hero-grid{grid-template-columns:48% 52%}.about-grid,.facility-grid,.contact-grid{gap:45px}.service-body{padding:24px}}@media(max-width:800px){.topline{display:none}.nav{height:76px;gap:16px}.brand img{width:77px;height:61px}.menu{display:block}.links{display:none;position:absolute;left:0;right:0;top:76px;background:white;padding:25px 28px;border-bottom:1px solid var(--line)}.links.open{display:flex;flex-direction:column;align-items:stretch;gap:18px}.nav>.btn{display:none}.hero-grid{grid-template-columns:1fr}.hero-copy{padding:50px 28px 38px}.hero-image{min-height:0;aspect-ratio:4/3}.hero-image>img{object-position:center}.hero-foot{margin-top:30px}.hero h1{max-width:630px}.hero .lead{max-width:530px}.cred{padding:23px 15px;display:block}.cred b,.cred span{display:block}.cred b{font-size:19px;margin-bottom:8px}.cred span{font-size:10px}.section{padding:70px 0}.section-head{display:block;margin-bottom:32px}.section-head>p{margin-top:22px;max-width:570px}.about-grid,.facility-grid,.contact-grid{grid-template-columns:1fr;gap:40px}.about-photo{max-width:650px}.since{right:0}.service-grid{grid-template-columns:1fr}.service{display:grid;grid-template-columns:40% 60%}.service-image img{height:100%;aspect-ratio:auto}.project-grid{gap:22px}.project-card:first-child img{aspect-ratio:.82}.project-caption{display:block}.project-caption h3{font-size:19px}.project-caption .view{display:block;margin-top:10px}.contact{padding:65px 0}.footer-top{display:block}.footer-links{margin-top:25px}.scope-more ul{grid-template-columns:1fr}}@media(max-width:480px){.wrap{width:calc(100% - 40px)}.nav{gap:10px}.hero-copy{padding:44px 20px 35px}h1{font-size:43px}.hero .eyebrow{font-size:10px}.lead{font-size:16px}.image-caption{left:20px;bottom:20px}.hero-index{display:none}.cred-grid{grid-template-columns:1fr 1fr 1fr}.cred{padding:20px 10px}.cred b{font-size:17px}.section{padding:58px 0}.service{display:block}.service-image img{aspect-ratio:1.5}.project-grid{grid-template-columns:1fr}.project-card:first-child img{aspect-ratio:1.4}.project-card img{aspect-ratio:1.4}.project-card:first-child{grid-row:auto}.facility-card{padding:26px}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}.actions .btn{padding:13px 18px}.brand span{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Editorial refinement — staging revision 2 */
h1,h2{text-wrap:balance}h1{font-weight:500;letter-spacing:-.055em}.hero-copy{padding-top:82px;padding-bottom:66px}.hero-grid{min-height:690px}.hero-frame{position:absolute;inset:25px;z-index:1;border:1px solid rgba(255,255,255,.22);pointer-events:none}.hero-image>img{object-position:57% center}.hero-image:after{background:linear-gradient(0deg,rgba(3,17,31,.8),transparent 50%)}.hero-foot{margin-top:40px}.hero-foot span{font-size:13px}.hero-index{font-family:Manrope,sans-serif;font-weight:400}.image-caption{bottom:38px;left:42px;right:42px}.header{transition:box-shadow .2s}.header.is-scrolled{box-shadow:0 8px 25px rgba(8,27,48,.06)}.links a{position:relative;padding:10px 0}.links a[aria-current="location"]{color:var(--blue)}.links a[aria-current="location"]:after{content:'';height:2px;background:var(--blue);position:absolute;bottom:0;left:0;right:0}.lang{font-size:14px}.lang a{padding:6px 8px}.eyebrow{font-size:13px}.section{padding:112px 0}.section-head{gap:65px}.copy p,.service p,.section-head>p{font-size:16px;line-height:1.8}.about-photo:before{content:'';position:absolute;left:-18px;top:-18px;width:80px;height:80px;border-left:1px solid #b7cadd;border-top:1px solid #b7cadd}.about-photo img{position:relative}.since{min-width:190px;padding:24px 30px}.since b{font-size:50px}.cred b{font-family:Manrope,sans-serif;font-weight:600;font-size:25px;letter-spacing:-.03em}.cred span{font-size:13px}.service{border:1px solid #dfe6ed;display:flex;flex-direction:column;transition:box-shadow .25s,border-color .25s}.service:hover{border-color:#adc0d4;box-shadow:0 16px 36px rgba(14,35,60,.06)}.service-body{flex:1;display:flex;flex-direction:column}.service-body p{margin-bottom:25px}.service-enquiry{font-size:14px;color:var(--blue);font-weight:600;margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}.service-enquiry:hover{text-decoration:underline}.scope-more summary{font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:20px}.scope-more summary::-webkit-details-marker{display:none}.scope-more summary:after{content:'+';font-size:23px;line-height:1}.scope-more[open] summary:after{content:'−'}.scope-more ul{font-size:16px;padding-top:6px;padding-bottom:25px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:35px;row-gap:42px}.project-card:first-child{grid-column:1/-1;grid-row:auto}.project-picture{display:block;overflow:hidden;position:relative}.project-card img{aspect-ratio:4/3;transition:transform .7s,filter .3s}.project-card:first-child img{aspect-ratio:2.2;object-position:50% 58%}.project-card:hover img{transform:scale(1.02)}.photo-open{position:absolute;bottom:20px;right:20px;border:1px solid #d5e4f2;display:grid;place-items:center;width:42px;height:42px;color:white;background:rgba(6,24,42,.6);font-size:25px}.project-title{display:block;color:white!important;font-family:Manrope,sans-serif;font-size:24px!important;line-height:1.35;margin-top:5px;letter-spacing:-.035em}.project-caption span{font-size:14px}.project-caption .view{font-size:13px;letter-spacing:.1em}.facility-card{background:linear-gradient(135deg,#f0f4f8,#e5edf4);border-top:3px solid var(--blue)}.facility-card .big{font-size:76px}.facility-card>p{font-size:16px}.capability{font-size:16px}.contact{background:#eaf0f7;border-top:1px solid #d3dfeb}.contact-row p{font-size:16px}.footer-top{align-items:center}.footer-links{font-size:14px}.dialog{width:min(1160px,96vw);max-height:94dvh;overflow:auto}.dialog>img{height:calc(90dvh - 100px);max-height:75dvh;width:100%;object-fit:contain}.gallery-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px}.gallery-bar p{padding:0;margin:0;max-width:55%}.gallery-controls{display:flex;align-items:center;gap:16px}.gallery-controls button{color:white;background:transparent;border:1px solid #576b80;padding:8px 12px;font-size:14px}.gallery-controls button:hover{background:#183856}.gallery-count{font-size:13px;white-space:nowrap;color:#a9bed3}.close{z-index:2}.dialog-open{overflow:hidden}.facility-photo{opacity:.9}.menu{min-height:44px;min-width:60px}
@media(min-width:801px) and (max-width:1100px){.nav{gap:16px}.nav>.btn{display:none}.links{gap:20px}.hero-copy{padding-top:60px}.hero-grid{min-height:620px}h1{font-size:49px}.section{padding:85px 0}.project-title{font-size:21px!important}}
@media(max-width:800px){.hero-grid{min-height:0}.hero-copy{padding:54px 28px 40px}.hero h1{font-size:clamp(43px,7vw,64px);max-width:640px}.hero-frame{inset:18px}.hero-foot{margin-top:30px}.hero-image>img{object-position:center}.section{padding:75px 0}.section-head{margin-bottom:32px}.service{display:grid;grid-template-columns:40% 60%}.service-body{padding:25px}.service-image img{height:100%}.links a{padding:8px 0}.links.open{box-shadow:0 15px 25px rgba(12,34,54,.12);max-height:calc(100dvh - 76px);overflow:auto}.project-title{font-size:22px!important}.gallery-bar{display:block}.gallery-bar p{max-width:none;margin-bottom:15px}.gallery-controls{justify-content:space-between}.about-photo:before{left:-10px;top:-10px}.cred span{font-size:12px}.cred b{font-size:21px}.dialog>img{height:auto;max-height:65dvh}.close{position:sticky;display:block;top:10px;margin:10px 10px 10px auto}.facility-card .big{font-size:65px}}
@media(max-width:480px){.hero-copy{padding:42px 20px 35px}.hero h1{font-size:clamp(34px,9.8vw,46px);line-height:1.16;letter-spacing:-.05em}.hero .eyebrow{font-size:11px}.hero .lead{font-size:16px;line-height:1.75;margin-top:22px}.hero-foot strong{font-size:23px}.hero-foot span{font-size:11px}.hero .actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.hero .btn{font-size:13px;padding:13px 8px}.hero-image{aspect-ratio:4/3}.image-caption{bottom:28px;left:28px;right:28px}.image-caption span{font-size:11px}.image-caption b{font-size:13px}.hero-index{display:none}.cred{padding:22px 10px}.cred b{font-size:18px}.cred span{font-size:11px;letter-spacing:.04em}.section{padding:60px 0}.eyebrow{font-size:12px}h2{font-size:35px}.about-grid{gap:33px}.since{padding:19px 24px;min-width:165px}.since b{font-size:42px}.service{display:flex}.service-image img{height:auto;aspect-ratio:1.5}.service-body{padding:26px}.service-body h3{font-size:25px}.project-grid{grid-template-columns:1fr;row-gap:30px}.project-card:first-child{grid-column:auto}.project-card:first-child img{aspect-ratio:4/3}.project-caption{display:flex;padding-top:17px}.project-caption .view{font-size:11px;margin-top:0}.project-title{font-size:22px!important}.project-caption span{font-size:13px}.contact h2{font-size:35px}.contact .actions{display:flex;flex-direction:column;align-items:stretch}.email{font-size:16px}.footer-brand{font-size:22px}.gallery-bar{padding:16px}.gallery-controls{gap:10px}.gallery-controls button{padding:9px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.hero-copy{animation:none}.project-card:hover img{transform:none}}

/* Preserve responsive image ratios instead of HTML intrinsic heights. */
img{height:auto}
@media(min-width:801px){.service-image img{height:auto}.about-photo img{height:auto}.project-card img{height:auto}.facility-photo{height:auto}}

/* Touch and keyboard usability */
.lang a{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.gallery-controls button,.close{min-height:44px}.service-enquiry{min-height:44px}.footer-links a{display:inline-flex;align-items:center;min-height:44px}@media(max-width:480px){.lang{gap:2px}.nav{gap:8px}.gallery-controls{flex-wrap:wrap}.gallery-count{min-width:48px;text-align:center}}

/* Company profile, service scope and documented experience. */
.profile-detail{margin-top:30px;padding-top:26px;border-top:1px solid var(--line)}.profile-detail h3{font-size:22px;line-height:1.4}.profile-detail p{font-size:15px;margin:16px 0}.profile-tags{display:flex;flex-wrap:wrap;gap:8px}.profile-tags span{background:#eef3f8;padding:7px 11px;font-size:12px;color:#385570}.service-scope{margin:0 0 22px;font-size:14px;color:var(--muted)}.service-scope summary{min-height:44px;cursor:pointer;color:var(--ink);font-weight:600;display:flex;align-items:center;justify-content:space-between;list-style:none;border-top:1px solid var(--line)}.service-scope summary::-webkit-details-marker{display:none}.service-scope summary:after{content:'+';font-size:22px}.service-scope[open] summary:after{content:'−'}.service-scope ul{padding-left:20px;margin:8px 0}.service-scope li{margin:7px 0}.additional-services{margin-top:48px}.additional-services>h3{font-size:27px;margin-bottom:25px;line-height:1.3}.additional-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.additional-grid article{border-top:2px solid #a8bdd3;padding:26px 8px 0;display:flex;flex-direction:column}.additional-grid h3{font-size:22px;line-height:1.3}.additional-grid p{font-size:15px;color:var(--muted);margin:16px 0 24px}.experience{padding:38px;border:1px solid #30475f;background:#0e263f;margin-bottom:65px}.experience-heading{font-size:34px;line-height:1.2}.experience-intro{max-width:670px;color:#b6c8db;font-size:16px}.experience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 38px;margin-top:30px}.experience-card{border-top:1px solid #38516b;padding:28px 0}.experience-year{font-family:Manrope,sans-serif;color:#9fc4f0;font-size:28px}.experience-card h4{font-family:Manrope,sans-serif;font-size:20px;font-weight:500;margin:12px 0 8px}.experience-card p{font-size:15px;color:#b6c8db;margin:0;max-width:470px}.experience-source{display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:#b5cef0;text-decoration:underline;text-underline-offset:5px}.archive-heading{margin-bottom:30px}.archive-heading h3{font-size:29px}.archive-heading p{font-size:16px;color:#aabcce;margin:13px 0 0}
@media(max-width:800px){.additional-grid{grid-template-columns:1fr}.additional-grid article{padding:23px 0 0}.additional-grid p{max-width:650px}.experience{padding:28px}.experience-grid{gap:0 26px}.experience-heading{font-size:30px}.about-grid{align-items:start}}
@media(max-width:480px){.experience{padding:24px 20px;margin-bottom:42px}.experience-grid{grid-template-columns:1fr}.experience-heading{font-size:27px}.experience-card{padding:22px 0}.archive-heading h3{font-size:26px}.profile-tags{gap:6px}.additional-services>h3{font-size:25px}}

/* Searchable document content with native expandable categories. */
.project-directory{margin:0 0 65px}.project-directory>h3{font-size:32px;line-height:1.3}.directory-intro{font-size:16px;color:#b6c8db;max-width:810px;margin:18px 0 30px}.project-category{border-top:1px solid #38516b}.project-category:last-child{border-bottom:1px solid #38516b}.project-category summary{display:flex;align-items:center;gap:20px;min-height:84px;padding:20px 6px;cursor:pointer;list-style:none;font-family:Manrope,sans-serif;font-size:23px;line-height:1.3}.project-category summary::-webkit-details-marker{display:none}.project-category summary:after{content:'+';font-size:30px;font-weight:400;color:#a8c9f1;min-width:22px;text-align:center}.project-category[open] summary:after{content:'−'}.category-count{margin-left:auto;color:#aabcce;font-family:'DM Sans',sans-serif;font-size:13px;white-space:nowrap}.project-category[open]{background:#0e263f;padding:0 28px}.project-record{display:flex;align-items:start;justify-content:space-between;gap:30px;border-top:1px solid #30475f;padding:23px 0}.project-record h4{font-family:Manrope,sans-serif;font-size:18px;font-weight:500;line-height:1.4;margin:0 0 9px}.project-record p{font-size:14px;color:#b6c8db;margin:0;max-width:780px;line-height:1.75}.record-period{color:#a8c9f1;font-size:14px;max-width:225px;text-align:right;flex:0 0 185px}.project-category>.experience-source{margin-bottom:18px}.experience-year{font-size:25px}
@media(max-width:800px){.project-record{gap:22px}.record-period{flex-basis:145px}.project-directory>h3{font-size:29px}}
@media(max-width:480px){.project-directory{margin-bottom:42px}.project-directory>h3{font-size:27px}.project-category summary{font-size:19px;gap:12px;min-height:78px}.category-count{font-size:12px}.project-category[open]{padding:0 16px}.project-record{display:flex;flex-direction:column;gap:12px}.record-period{flex:auto;text-align:left;font-size:13px;max-width:none}.project-record h4{font-size:17px}.experience-year{font-size:24px}}

/* Keep the original logo and company name visible across screen sizes. */
.brand img{width:104px;height:83px;flex-shrink:0}.brand span{display:block}.nav{height:104px}.brand{gap:14px;flex-shrink:0}
@media(min-width:801px) and (max-width:1280px){.nav>.btn{display:none}.nav{gap:18px}.links{gap:18px}.brand span{font-size:11px;letter-spacing:.05em}}
@media(max-width:800px){.nav{height:100px}.brand img{width:100px;height:80px}.brand span{display:block;font-size:12px;letter-spacing:.04em}.links{top:100px}.links.open{max-height:calc(100dvh - 100px)}}
@media(max-width:600px){html{scroll-padding-top:128px}.nav{width:calc(100% - 32px);height:112px;display:grid;grid-template-columns:minmax(0,1fr) 90px;grid-template-rows:44px 44px;gap:4px 8px;padding:10px 0}.brand{grid-column:1;grid-row:1/3;gap:8px;margin-right:0;min-width:0}.brand img{width:96px;height:77px}.brand span{display:block;font-size:11px;line-height:1.5;letter-spacing:.035em;max-width:114px}.lang{grid-column:2;grid-row:1;gap:2px;justify-content:end}.lang a{padding:5px;min-width:44px}.menu{grid-column:2;grid-row:2;min-height:44px;width:90px;padding:7px 12px;font-size:14px}.links{top:112px}.links.open{max-height:calc(100dvh - 112px)}}
@media(max-width:350px){.brand img{width:80px;height:64px}.brand span{font-size:10px;letter-spacing:0;max-width:92px}}

/* Compact, single-row phone header. Desktop styling stays unchanged. */
@media(max-width:600px){html{scroll-padding-top:94px}.nav{height:78px;width:calc(100% - 24px);display:flex;align-items:center;gap:5px;padding:0}.brand{flex:1;gap:5px;min-width:0}.brand img{width:84px;height:67px}.brand span{font-size:9px;line-height:1.45;letter-spacing:0;max-width:100px}.lang{flex:none;gap:0;font-size:12px}.lang a{min-width:30px;min-height:44px;padding:5px 4px}.menu{flex:none;width:auto;min-width:48px;min-height:44px;padding:7px 8px;font-size:12px}.links{top:78px}.links.open{max-height:calc(100dvh - 78px)}}
@media(max-width:350px){.nav{width:calc(100% - 16px);gap:3px}.brand img{width:78px;height:62px}.brand{gap:4px}.brand span{font-size:8px;max-width:84px}.lang a{min-width:28px}.menu{min-width:44px;padding:7px 5px}}

/* Cinematic hero preview: original company photography, full-bleed composition. */
.hero-grid{position:relative;display:block;min-height:740px;isolation:isolate}.hero-image{position:absolute;inset:0;min-height:0;z-index:-2;aspect-ratio:auto;overflow:hidden}.hero-image>img{width:100%;height:100%;object-fit:cover;object-position:62% 48%;animation:cinema-photo 1.6s ease-out both}.hero-image:after{background:linear-gradient(90deg,rgba(3,17,32,.96) 0%,rgba(3,17,32,.85) 30%,rgba(3,17,32,.37) 68%,rgba(3,17,32,.15) 100%),linear-gradient(0deg,rgba(3,17,32,.75),transparent 45%)}.hero-frame{inset:28px;border-color:rgba(255,255,255,.14)}.hero-copy{background:none;padding:94px max(48px,calc((100vw - 1320px)/2)) 82px;max-width:none;position:relative;z-index:1}.hero-copy h1{max-width:750px;font-size:clamp(48px,5.2vw,78px);line-height:1.08}.hero-copy .lead{max-width:470px;color:#d4dfeb}.hero-copy .eyebrow{color:#c0d6f0}.hero-copy h1 em{color:#b7d3f4}.hero-copy>.eyebrow,.hero-copy>h1,.hero-copy>.lead,.hero-copy>.actions{animation:cinema-copy .85s ease-out both}.hero-copy>h1{animation-delay:.1s}.hero-copy>.lead{animation-delay:.2s}.hero-copy>.actions{animation-delay:.3s}.hero-foot{max-width:470px;border-color:rgba(210,229,247,.3);margin-top:42px}.image-caption{left:auto;right:max(48px,calc((100vw - 1320px)/2));bottom:43px;max-width:310px}.hero-index{display:none}.image-caption b{font-size:14px}.image-caption span{font-size:11px;color:#d8e6f4}.hero .btn.ghost{background:rgba(8,27,48,.28);border-color:#9aaec2}.hero .btn.ghost:hover{background:rgba(26,59,91,.7)}
@keyframes cinema-copy{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes cinema-photo{from{transform:scale(1.035);opacity:.65}to{transform:scale(1);opacity:1}}
@media(min-width:1600px){.hero-grid{min-height:800px}.hero-copy{padding-top:110px;padding-bottom:100px}}
@media(max-width:1150px){.hero-copy{padding:82px 28px 80px}.image-caption{right:30px}.hero-copy h1{font-size:clamp(48px,6vw,70px);max-width:650px}}
@media(max-width:800px){.hero-grid{min-height:710px}.hero-copy{padding:70px 28px 110px}.hero-copy h1{font-size:clamp(44px,7.5vw,64px);max-width:620px}.hero-image{aspect-ratio:auto}.hero-image>img{object-position:59% center}.hero-image:after{background:linear-gradient(90deg,rgba(3,17,32,.9),rgba(3,17,32,.45)),linear-gradient(0deg,rgba(3,17,32,.85),rgba(3,17,32,.1) 65%)}.hero-frame{inset:18px}.image-caption{left:28px;right:28px;bottom:30px;max-width:none}.hero-foot{margin-top:35px}.hero-copy .lead{max-width:500px}}
@media(max-width:480px){.hero-grid{min-height:670px}.hero-copy{padding:56px 20px 94px}.hero-copy h1{font-size:clamp(34px,10vw,46px);line-height:1.14}.hero-copy .lead{font-size:16px;line-height:1.75;color:#d4dfeb;margin:25px 0 30px}.hero-image>img{object-position:57% center}.hero-image:after{background:linear-gradient(90deg,rgba(3,17,32,.87),rgba(3,17,32,.46)),linear-gradient(0deg,rgba(3,17,32,.96),rgba(3,17,32,.15) 75%)}.hero-frame{inset:12px}.hero-foot{margin-top:32px}.image-caption{left:20px;right:20px;bottom:25px}.image-caption span{font-size:9px;letter-spacing:.1em}.image-caption b{font-size:12px}.hero-copy .eyebrow{font-size:10px}}
@media(prefers-reduced-motion:reduce){.hero-image>img,.hero-copy>.eyebrow,.hero-copy>h1,.hero-copy>.lead,.hero-copy>.actions{animation:none;transform:none}}

/* Cinematic rhythm across the page, with progressive motion enhancement. */
.reading-progress{position:absolute;bottom:-1px;left:0;height:2px;width:100%;background:#1758bd;transform:scaleX(0);transform-origin:left;pointer-events:none}
.cinema-panel{position:relative;isolation:isolate;overflow:hidden;background:#081b30;color:white;min-height:580px;display:flex;align-items:center;padding:100px 0}
.cinema-panel>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}
.cinema-panel:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,17,32,.92),rgba(3,17,32,.67) 42%,rgba(3,17,32,.18)),linear-gradient(0deg,rgba(3,17,32,.6),transparent 70%)}
.cinema-panel .eyebrow{color:#b7d3f4}.cinema-panel h2{font-size:clamp(40px,5.5vw,76px);max-width:780px;line-height:1.09}.cinema-panel h2 em{font-style:normal;color:#b7d3f4}.cinema-panel p:not(.eyebrow){max-width:440px;color:#d0dce8;margin:28px 0 32px}.cinema-panel .text-link{color:white;border-color:#b7d3f4}
.cinema-meta{margin-top:62px;display:flex;gap:26px;font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#c3d6e8}.cinema-meta span+span{border-left:1px solid #7992ac;padding-left:26px}
.section-head .eyebrow{margin-bottom:24px}.service{border-bottom:2px solid transparent;transition:border-color .3s,box-shadow .3s}.service:hover{border-color:#1758bd;box-shadow:0 16px 40px #081b3010}
.project-picture{overflow:hidden}.project-picture img{transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .4s}.project-card:hover .project-picture img{transform:scale(1.045)}.photo-open{transition:background .3s,transform .3s}.project-card:hover .photo-open{transform:rotate(90deg);background:#1758bd}
.contact{position:relative;background:radial-gradient(ellipse at 0% 0%,#1d4065 0%,#0b233c 50%,#081b30 100%);color:white;padding:100px 0}.contact .eyebrow{color:#b7d3f4}.contact-intro,.contact-row p{color:#becfe0}.contact-details,.contact-row{border-color:#ffffff30}.contact .email{color:#b7d3f4}.contact .btn:not(.light){background:#216bd0}.contact .btn:not(.light):hover{background:#1758bd}
.scene-ready{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.scene-ready.scene-visible{opacity:1;transform:none}.scene-ready:focus-within{opacity:1;transform:none}
.dialog[open]{animation:gallery-enter .25s ease-out}.dialog::backdrop{backdrop-filter:blur(7px)}@keyframes gallery-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:800px){.cinema-panel{min-height:510px;padding:76px 0}.cinema-panel h2{font-size:clamp(38px,7vw,58px);max-width:620px}.cinema-panel:after{background:linear-gradient(90deg,rgba(3,17,32,.91),rgba(3,17,32,.46)),linear-gradient(0deg,rgba(3,17,32,.65),transparent)}.cinema-meta{margin-top:46px;gap:16px;font-size:10px}.cinema-meta span+span{padding-left:16px}.contact{padding:76px 0}}
@media(max-width:480px){.cinema-panel{min-height:510px;padding:64px 0}.cinema-panel h2{font-size:40px}.cinema-panel p:not(.eyebrow){font-size:16px}.cinema-meta{font-size:9px;letter-spacing:.07em;gap:12px}.cinema-meta span+span{padding-left:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scene-ready{opacity:1;transform:none;transition:none}.project-picture img,.photo-open,.service{transition:none}.project-card:hover .project-picture img,.project-card:hover .photo-open{transform:none}.dialog[open]{animation:none}}
@media print{.scene-ready{opacity:1;transform:none}.reading-progress{display:none}}
.hero-image{z-index:0;pointer-events:none}.hero-image:after{z-index:2}.hero-frame{z-index:3}.hero-copy{pointer-events:none}.hero-copy a{pointer-events:auto}
.film-shots{position:absolute;inset:-35px 0;transform:translateY(var(--film-offset,0px))}.film-shot{position:absolute;inset:0;opacity:0;transition:opacity 1.8s ease;overflow:hidden}.film-shot.is-active{opacity:1}.film-shot img{width:100%;height:100%;object-fit:cover;object-position:62% center;transform:scale(1.025)}
.film-running .film-shot.is-active img,.film-running .film-shot.is-leaving img{animation:film-drift 10s linear both}.film-paused .film-shot img{animation-play-state:paused!important}@keyframes film-drift{from{transform:scale(1.025)}to{transform:scale(1.115)}}
.hero-image .image-caption{display:none}.film-controls{position:absolute;z-index:4;right:max(48px,calc((100vw - 1320px)/2));bottom:38px;color:white;display:flex;align-items:center;gap:12px}.film-status{font-size:11px;letter-spacing:.12em;margin-right:10px;font-variant-numeric:tabular-nums}.film-controls button{color:white;background:#081b306b;border:1px solid #ffffff70;min-height:44px;min-width:44px;font-size:12px;padding:8px 12px}.film-controls button[aria-pressed=true]{background:white;color:#081b30}.film-controls button:hover{border-color:white}.film-pause{min-width:88px!important}.film-controls[hidden]{display:none}

/* Cinematic-1 composition with an unobtrusive moving hero. */
.film-controls{right:max(32px,calc((100vw - 1320px)/2));bottom:30px;left:auto}
.film-controls .film-pause{border:0;background:transparent;min-width:44px!important;width:44px;height:44px;padding:12px;opacity:.7;display:flex;align-items:center;justify-content:center;color:white}
.film-controls .film-pause:hover,.film-controls .film-pause:focus-visible{opacity:1;background:transparent}
.film-pause:disabled{display:none!important}.film-symbol{display:block;width:10px;height:13px;border-left:3px solid currentColor;border-right:3px solid currentColor}.film-pause[data-paused=true] .film-symbol{width:0;height:0;border:7px solid transparent;border-left:11px solid currentColor;border-right:0}
.hero-copy{padding-bottom:92px}.project-grid .project-card:nth-child(n+6) img{aspect-ratio:1.65}
@media(max-width:800px){.hero-copy{padding-bottom:104px}.film-controls{right:20px;bottom:20px}.film-shot img{object-position:59% center}}
@media(max-width:480px){.hero-copy{padding-bottom:92px}.film-controls{bottom:16px;right:14px}.film-shot img{object-position:57% center}}
@media(prefers-reduced-motion:reduce){.film-shot{transition:none}.film-shot img{animation:none!important;transform:none!important}.film-shots{transform:none}}


/* Replay only photography. Text remains stable and no image is hidden. */
.photo-repeat.photo-in-view{animation:photo-return 1.2s cubic-bezier(.2,.65,.25,1) both}
@keyframes photo-return{from{opacity:.75;transform:translateY(12px) scale(1.025)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.photo-repeat.photo-in-view{animation:none}}
@media print{.photo-repeat.photo-in-view{animation:none}}

/* A distinct animation name restarts the zoom on hero re-entry. */
.hero.film-reentry.film-running .film-shot.is-active img,.hero.film-reentry.film-running .film-shot.is-leaving img{animation-name:film-drift-return}
@keyframes film-drift-return{from{transform:scale(1.025)}to{transform:scale(1.115)}}

/* Retain the original gentle stagger when the opening returns into view. */
.hero.copy-reentry .hero-copy>.eyebrow,.hero.copy-reentry .hero-copy>h1,.hero.copy-reentry .hero-copy>.lead,.hero.copy-reentry .hero-copy>.actions{animation-name:cinema-copy-return}
@keyframes cinema-copy-return{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hero.copy-reentry .hero-copy>.eyebrow,.hero.copy-reentry .hero-copy>h1,.hero.copy-reentry .hero-copy>.lead,.hero.copy-reentry .hero-copy>.actions{animation:none;transform:none}}

/* A slower, shorter entrance for the hero copy, including repeated visits. */
.hero .hero-copy>.eyebrow,.hero .hero-copy>h1,.hero .hero-copy>.lead,.hero .hero-copy>.actions{animation-duration:1.8s;animation-timing-function:cubic-bezier(.37,0,.25,1)}
.hero .hero-copy>.eyebrow{animation-delay:0s}.hero .hero-copy>h1{animation-delay:.12s}.hero .hero-copy>.lead{animation-delay:.24s}.hero .hero-copy>.actions{animation-delay:.36s}
@keyframes cinema-copy{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes cinema-copy-return{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hero .hero-copy>.eyebrow,.hero .hero-copy>h1,.hero .hero-copy>.lead,.hero .hero-copy>.actions{animation:none;transform:none}}

/* Fade the copy in over one second while the gentle movement continues. */
.hero .hero-copy>.eyebrow,.hero .hero-copy>h1,.hero .hero-copy>.lead,.hero .hero-copy>.actions{animation-name:hero-glide,hero-ink;animation-duration:1.8s,1s;animation-timing-function:cubic-bezier(.37,0,.25,1),ease-out}
.hero.copy-reentry .hero-copy>.eyebrow,.hero.copy-reentry .hero-copy>h1,.hero.copy-reentry .hero-copy>.lead,.hero.copy-reentry .hero-copy>.actions{animation-name:hero-glide-return,hero-ink-return}
.hero .hero-copy>.eyebrow{animation-delay:0s}.hero .hero-copy>h1{animation-delay:.04s}.hero .hero-copy>.lead{animation-delay:.08s}.hero .hero-copy>.actions{animation-delay:.12s}
@keyframes hero-glide{from{transform:translateY(8px)}to{transform:translateY(0)}}
@keyframes hero-glide-return{from{transform:translateY(8px)}to{transform:translateY(0)}}
@keyframes hero-ink{from{opacity:0}to{opacity:1}}
@keyframes hero-ink-return{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.hero .hero-copy>.eyebrow,.hero .hero-copy>h1,.hero .hero-copy>.lead,.hero .hero-copy>.actions,.hero.copy-reentry .hero-copy>.eyebrow,.hero.copy-reentry .hero-copy>h1,.hero.copy-reentry .hero-copy>.lead,.hero.copy-reentry .hero-copy>.actions{animation:none;transform:none;opacity:1}}
