/* White space, sky-blue line work and strong documentary photography. */
:root{--detail-line:#dce8ed;--detail-muted:#526b7c;--field-blue:#41b5fa}
body{background:#fff}
.scene-hero{margin:14px 14px 0;width:calc(100% - 28px);min-height:calc(100svh - 28px);border-radius:20px;overflow:hidden}
.scene-photo,.scene-slide,.scene-photo:after{border-radius:20px}
.page-home.logo-motion-ready:not(.logo-docked) .site-header{top:22px}
.scene-title{letter-spacing:.035em}
.news-strip{margin:0 6%;padding-left:0;padding-right:0;min-height:78px}
.section{padding-top:100px;padding-bottom:100px}
.section-label{border-top:0;padding-top:0;margin-bottom:42px;letter-spacing:.12em}
.section-label>span:first-child:before{height:6px;width:6px;border-radius:50%;margin-right:12px}
.world-about{background:#fff;padding-top:100px;padding-bottom:78px}
.world-heading{display:block;text-align:center;max-width:900px;margin:0 auto}
.world-heading>.field-intro-kicker{font:500 11px/1.6 Arial,sans-serif;color:#2785b8;letter-spacing:.18em;margin:0 auto 18px;padding:0;max-width:none}
.world-heading h2{font-size:38px;line-height:1.5;letter-spacing:.06em;margin:0 0 22px}
.world-heading>p:not(.field-intro-kicker){max-width:690px;margin:0 auto;font-size:15px;line-height:2}
.world-about .infrastructure-world{margin:30px calc(-1 * var(--pad)) 20px;width:calc(100% + var(--pad) * 2)}
.infrastructure-world{background:#fff;color:#142d3e;--world-progress:1}
.infra-viewbar{border:0;padding:10px var(--pad);position:relative;z-index:2}
.infra-viewbar>span{color:#7d9db0;font:500 9px/1.7 Arial,sans-serif;letter-spacing:.13em}
.infra-tools{display:flex;align-items:center;gap:28px}
.infra-motion,.infra-overview{color:#2a617d;font-size:11px;line-height:1.5;min-height:40px;display:flex;align-items:center;gap:10px;padding:4px 0;white-space:nowrap}
.infra-motion svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}
.infra-motion:hover,.infra-overview:hover{color:#1479ae}
.infra-overview .ui-icon{color:#389fda;width:17px;height:17px}
.infra-window{aspect-ratio:1600/840;background:#fff}
.infra-art{transform:none!important;transition:none;will-change:auto}
.civil-field-scene{display:block;width:100%;height:100%}
.infra-pin{width:31px;height:31px;border-radius:50%;background:white;color:#277eac;border:1px solid #77bbdf;box-shadow:0 0 0 5px #fff9}
.infra-pin:before,.infra-pin:after{display:none}
.infra-pin.is-active{background:#2b91cb;color:white;box-shadow:0 0 0 7px #41b5fa22}
.infra-controls{border:0;padding:0 var(--pad);gap:26px;max-width:1440px;margin:0 auto}
.infra-zone{color:#183e55;border:0!important;border-bottom:1px solid #cbdde7!important;padding:20px 0;min-height:68px;gap:16px}
.infra-zone>span{color:#409ed2;font-size:11px}.infra-zone strong{font-size:15px;font-weight:600;letter-spacing:.035em}
.infra-zone[aria-pressed="true"],.infra-zone:hover{background:transparent}
.infra-zone:after{background:#299bdc;height:2px}
.infra-description{padding:22px var(--pad) 10px;grid-template-columns:200px minmax(0,1fr);gap:26px;max-width:1440px;margin:0 auto}
.infra-description>span{color:#295771;font-size:12px}
.infra-description>p{color:#607f91;font-size:12px;line-height:1.9;max-width:800px}
.infrastructure-world>figcaption{color:#7e98a8;font-size:9px;max-width:1440px;margin:0 auto;padding-bottom:18px}
.infra-swipe{color:#5e859b;border-color:#e5eef4}
.infra-swipe>span{color:#41b5fa}
.world-about .world-company-link{margin-top:30px}
.world-about .numbers{margin-top:40px;padding-top:26px;border-top:1px solid #e4edf2}
.numbers>div{border-color:#e4edf2}.numbers strong{color:#19455e}
.fresh-business{background:#f3f8fb;border-radius:22px;margin:0 14px;padding-left:calc(var(--pad) - 14px);padding-right:calc(var(--pad) - 14px)}
.section-heading h2,.trust .section-heading h2{font-size:36px;letter-spacing:.04em}
.core-work-photo{border-radius:12px;isolation:isolate}
.page-home .core-work-grid{gap:44px 38px}
.page-home .core-work-title h3{font-size:25px}
.field-note.section{background:#fff;gap:6vw}
.field-note figure{border-radius:12px}
.field-note h2{font-size:32px}
.work-section{background:#fff}
.home-record-head{color:#6e8da0;border-color:#c3d9e5}
.home-record{border-color:#e0eaf0;min-height:130px}
.home-record:hover{background:#f5fafd}
.home-record h3{font-size:19px;font-weight:600;line-height:1.8}
.home-record-client{color:#365d73}
.field-recruit{margin:0 14px;border-radius:20px;overflow:hidden}
.trust{background:#fff}
.trust-grid>div{border-color:#dce8ee}
.news-section{background:#f4f8fb;margin:0 14px;border-radius:20px}
.contact-band{background:#fff;border-top:0;padding-top:90px;padding-bottom:90px}
.contact-band h2{font-size:36px}.contact-band .eyebrow{color:#2785b8}
.contact-band .button{min-width:280px;border-color:#88b7d0;border-radius:50px;padding:20px 30px;color:#1d5776}
.contact-band .button .ui-icon{color:#349bd2}
.footer{background:#f2f8fb;color:#25485c;border-top:1px solid #d9e8f0}
.footer-links a,.footer-links button,.footer-tel{color:#25485c}
.footer-bottom{border-color:#d5e5ed;color:#6b8798}
.career-photo-hero{margin:14px 14px 0;border-radius:20px;overflow:hidden}
.career-infrastructure.section{padding-top:90px;padding-bottom:76px}
.career-infrastructure>div:first-child{display:block;text-align:center;max-width:740px;margin:0 auto 30px}
.career-infrastructure>div:first-child>h2{font-size:34px;margin:0 0 20px}
.career-infrastructure>div:first-child>.eyebrow{color:#2785b8}
.career-infrastructure>div:first-child>p:not(.eyebrow){max-width:600px;margin:0 auto}
.career-infrastructure .infrastructure-world{width:calc(100% + var(--pad) * 2);margin:0 calc(var(--pad) * -1);max-width:none}
.career-photo-hero+.career-infrastructure{background:#fff}
.job-card{border-radius:10px;overflow:hidden;border-color:#d7e6ef}
.team-section{background:#f3f8fb}
.company-overview{background:#fff}.company-overview figure{border-radius:12px;overflow:hidden}
.company-history,.qualifications{background:#fff}
.company-facts>div{border-color:#d9e6ef}
.work-end-image{background:#f4f9fc;border-radius:20px;margin:0 14px;min-height:380px}
.work-end-image>img{object-fit:contain!important;object-position:50% 50%;opacity:1}
.work-end-image:after{display:none}.work-end-image>div{display:none}
/* Only independent physical parts move. The camera stays still. */
.excavator-boom{animation:field-boom 7.4s cubic-bezier(.45,0,.25,1) infinite;transform-origin:0 0}
.excavator-stick{animation:field-stick 7.4s cubic-bezier(.45,0,.25,1) infinite;transform-origin:0 0}
.excavator-bucket{animation:field-bucket 7.4s cubic-bezier(.45,0,.25,1) infinite;transform-origin:0 0}
.excavator-secondary .excavator-boom,.excavator-secondary .excavator-stick,.excavator-secondary .excavator-bucket{animation-delay:-3.7s}
.haul-truck--out{animation:field-haul-out 20s linear -5s infinite}
.haul-truck--return{animation:field-haul-return 24s linear -11s infinite}
.truck-wheel{animation:field-wheel 1.6s linear infinite;transform-origin:0 0}
.pipe-flow{animation:field-water 3s linear infinite}
.river-flow{animation:field-water 12s linear infinite}
.infrastructure-world .civil-field-scene *{animation-play-state:paused}
.infrastructure-world.is-live:not(.is-paused) .civil-field-scene *{animation-play-state:running}
@keyframes field-boom{0%,100%{transform:rotate(-3deg)}25%,40%{transform:rotate(-19deg)}68%,80%{transform:rotate(9deg)}}
@keyframes field-stick{0%,100%{transform:rotate(-9deg)}25%,40%{transform:rotate(17deg)}68%,80%{transform:rotate(-20deg)}}
@keyframes field-bucket{0%,100%{transform:rotate(2deg)}25%,40%{transform:rotate(-32deg)}68%,80%{transform:rotate(26deg)}}
@keyframes field-haul-out{0%{transform:translate(0,0);opacity:0}5%{opacity:1}91%{opacity:1}100%{transform:translate(650px,255px);opacity:0}}
@keyframes field-haul-return{0%{transform:translate(0,0);opacity:0}5%{opacity:1}91%{opacity:1}100%{transform:translate(-650px,-255px);opacity:0}}
@keyframes field-wheel{to{transform:rotate(360deg)}}
@keyframes field-water{to{stroke-dashoffset:-106}}
@media(min-width:1600px){.infrastructure-world .infra-window{max-width:1700px;margin:0 auto}}
@media(max-width:1100px){.infra-controls{gap:18px}.infra-zone{gap:10px}.infra-zone strong{font-size:14px}.section{padding-top:80px;padding-bottom:80px}.world-heading h2{font-size:34px}.career-infrastructure>div:first-child>h2{font-size:31px}}
@media(max-width:700px){
 .scene-hero{margin:7px 7px 0;width:calc(100% - 14px);min-height:calc(100svh - 14px);border-radius:12px}.scene-photo,.scene-slide,.scene-photo:after{border-radius:12px}
 .page-home.logo-motion-ready:not(.logo-docked) .site-header{top:15px}
 .section{padding-top:62px;padding-bottom:62px}.news-strip{margin:0 24px;min-height:78px}
 .section-label{margin-bottom:30px;font-size:9px;gap:20px}.world-about{padding-top:64px;padding-bottom:50px}
 .world-heading h2{font-size:28px;line-height:1.6;letter-spacing:.035em;margin-bottom:17px}.world-heading>p:not(.field-intro-kicker){font-size:13px;line-height:2;text-align:left}.world-heading>.field-intro-kicker{font-size:10px;margin-bottom:12px}
 .world-about .infrastructure-world{margin-top:28px}
 .infra-viewbar{padding:8px 24px;display:block}.infra-viewbar>span{display:block;font-size:8px;max-width:none;margin-bottom:6px}.infra-tools{justify-content:space-between;gap:22px}.infra-motion,.infra-overview{font-size:11px;min-height:36px}
 .infra-window{height:410px;aspect-ratio:auto}.infra-art{width:781px;height:410px}
 .infrastructure-world.is-overview .infra-window{aspect-ratio:1600/840;height:auto}.infrastructure-world.is-overview .infra-art{width:100%;height:100%}
 .infra-swipe{padding:12px 24px;font-size:10px}
 .infra-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;padding:0 24px}
 .infra-zone,.infra-compact .infra-zone{padding:16px 0;min-height:60px;gap:12px}.infra-zone strong,.infra-compact .infra-zone strong{font-size:13px}
 .infra-description,.infra-compact .infra-description{display:block;padding:20px 24px 9px;min-height:122px}.infra-description>span{display:block;margin-bottom:8px;font-size:12px}.infra-description>p{font-size:12px}
 .infrastructure-world>figcaption{padding:0 24px 18px;font-size:9px}
 .infra-pin{width:27px;height:27px}.infrastructure-world.is-overview .infra-pin{width:20px;height:20px}
 .world-about .numbers{margin-top:30px;padding-top:24px}.world-company-link{width:245px}.numbers strong{font-size:48px}
 .fresh-business{margin:0 7px;border-radius:14px;padding-left:17px;padding-right:17px}.section-heading h2,.trust .section-heading h2{font-size:28px}.core-work-photo{border-radius:8px}
 .page-home .core-work-grid{gap:32px}.field-note.section{gap:28px}.field-note figure{border-radius:9px}.field-note h2{font-size:27px}
 .home-record{min-height:0}.home-record h3{font-size:17px}
 .field-recruit{margin:0 7px;border-radius:14px}.news-section{margin:0 7px;border-radius:14px;padding-left:17px;padding-right:17px}
 .contact-band{padding-top:62px;padding-bottom:62px}.contact-band h2{font-size:28px}.contact-band .button{min-width:0;width:100%;padding:19px 25px}
 .career-photo-hero{margin:7px 7px 0;border-radius:12px}.career-infrastructure.section{padding-top:60px;padding-bottom:50px}.career-infrastructure>div:first-child>h2{font-size:27px}.career-infrastructure>div:first-child>p:not(.eyebrow){font-size:13px;text-align:left}
 .career-infrastructure .infrastructure-world{margin:0 -24px;width:calc(100% + 48px)}
 .work-end-image{margin:0 7px;min-height:230px;border-radius:12px}.footer{padding-top:55px}
}
@media(prefers-reduced-motion:reduce){.infra-pin,.infra-zone:after{transition:none}}
