@font-face{font-family:Onest;src:url('assets/Onest.woff2') format('woff2');font-display:swap;font-weight:100 900}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#fff;color:#191b1c;font-family:Onest,Arial,sans-serif;font-size:16px;line-height:1.5}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #247fbb;outline-offset:6px}button{border:0;background:none}p,h1,h2,h3,figure{margin:0}h1,h2,h3{font-weight:450;line-height:1.04;letter-spacing:-.06em}p{max-width:44ch}h2{font-size:clamp(40px,4.6vw,74px)}h3{font-size:25px;letter-spacing:-.035em}em{font-style:normal;color:#657d89}.grid-lines{pointer-events:none;position:absolute;inset:0 4% auto;height:100svh;min-height:700px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#efefef calc(25% - 1px),#efefef 25%);border-left:1px solid #efefef;z-index:-1}.skip{position:absolute;top:-60px;background:#fff;padding:10px;z-index:10}.skip:focus{top:0}header{height:110px;display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:start;padding:28px 4%;gap:25px;font-size:13px;line-height:1.3}.brand{display:flex;gap:12px;font-weight:600;font-size:15px}.brand-mark{display:flex;gap:4px;height:33px}.brand-mark i{width:4px;background:#2589cc}.brand-mark i:last-child{background:#dc503d;margin-top:7px}.header-note{color:#64696b}nav{display:flex;gap:25px}nav a:hover{color:#237fb5}.header-contact{padding:0;display:flex;gap:30px;font-size:14px}.header-contact span{font-size:20px}.hero{position:relative;min-height:660px;height:calc(100svh - 110px);max-height:920px;margin:0 4%;display:grid;grid-template-columns:56% 44%;align-items:center;padding-bottom:100px}.hero-copy{position:relative;z-index:1;padding-left:5vw}.pipe-pair{width:95px;height:22px;display:flex;flex-direction:column;gap:7px;margin-bottom:29px}.pipe-pair i{height:5px;background:#278dce;width:100%;box-shadow:inset 0 1px #ffffff66;border-radius:0 3px 3px 0}.pipe-pair i:last-child{background:#d94d38;width:76%}.eyebrow{font-size:11px;letter-spacing:.08em;color:#63696c;display:block}.hero h1{font-size:clamp(76px,8.25vw,140px);letter-spacing:-.075em;line-height:.97;margin:22px 0 30px;font-weight:450}.dot{color:#d94d38}.hero-intro{display:flex;gap:60px;align-items:end}.hero-intro p{font-size:20px;line-height:1.35;letter-spacing:-.035em}.text-link{font-size:14px;display:inline-flex;gap:35px;align-items:center;border-bottom:1px solid #a8adaf;padding:0 0 7px;background:none;text-align:left}.text-link span{font-size:23px;transition:transform .25s}.text-link:hover span{transform:translate(3px,-3px)}.hero-person{height:100%;max-height:650px;position:relative;display:flex;align-items:center;justify-content:center}.hero-person img{height:100%;width:100%;object-fit:contain;mix-blend-mode:multiply}.hero-person figcaption{position:absolute;bottom:-23px;left:19%;display:flex;gap:20px;align-items:start;background:#fff;padding:5px 15px}.hero-person figcaption p{font-size:23px;letter-spacing:-.045em;line-height:1.15}.small-cross{color:#278dce;font-size:32px;font-weight:300;line-height:1}.hero-foot{position:absolute;bottom:25px;inset-inline:0;display:flex;justify-content:space-between;align-items:end;font-size:11px;letter-spacing:.035em}.hero-foot a{font-size:13px;display:flex;gap:30px}.section{padding:90px 9% 100px;scroll-margin-top:0}.section-label{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.05em;margin-bottom:62px;color:#626a6d}.temperature{display:flex;align-items:center;gap:9px}.temperature i{display:inline-block;height:4px;width:20px;background:#278dce}.temperature i:nth-of-type(2){background:#d94d38;margin-left:16px}.section-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:end;margin-bottom:65px}.section-heading>p{color:#62696c;font-size:17px;max-width:38ch}.services{background:#f5f7f8}.service-list{border-top:1px solid #cbd1d4}details{border-bottom:1px solid #cbd1d4}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.service-list summary{display:grid;grid-template-columns:45px 1fr 230px 24px;gap:18px;align-items:center;padding:29px 0}.num{font-size:12px;color:#79858b}.service-hint{font-size:13px;color:#677278}.plus{position:relative;width:20px;height:20px;display:block}.plus:before,.plus:after{content:'';position:absolute;left:2px;top:9px;width:16px;height:1px;background:currentColor;transition:transform .25s}.plus:after{transform:rotate(90deg)}details[open] .plus:after{transform:rotate(0)}.service-body{margin-left:63px;display:flex;align-items:end;justify-content:space-between;gap:40px;padding:0 0 32px}.service-body p{max-width:51ch;color:#56636a}.service-body .text-link{white-space:nowrap}.service-list details[open] h3{color:#217daf}.approach{padding-top:110px}.approach-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:70px}.approach h2{line-height:1.08}.principles>p{color:#657075;margin-bottom:32px}.principles .lead{font-size:27px;color:#191b1c;letter-spacing:-.04em;line-height:1.25}.principles>div{border-top:1px solid #e1e5e7;padding:24px 0}.principles h3{font-size:21px;margin-bottom:12px}.principles>div p{color:#657075}.process{background:#eff5f8;position:relative}.process:before,.process:after{content:'';position:absolute;top:0;width:50%;height:4px;background:#278dce;left:0}.process:after{left:50%;background:#d94d38}.steps{display:grid;grid-template-columns:repeat(3,1fr);margin:75px 0 48px;gap:40px}.steps article{border-top:1px solid #a9bdc8;padding-top:21px}.steps span{font-size:11px;color:#617684}.steps h3{margin:28px 0 17px;font-size:30px}.steps p{color:#5d707c;font-size:15px;max-width:31ch}.primary{display:inline-flex;background:#1d2931;color:white;padding:20px 25px;gap:45px;justify-content:space-between;align-items:center;font-size:15px;transition:background .25s,transform .25s}.primary:hover{background:#227eaf;transform:translateY(-2px)}.primary span{font-size:23px;line-height:1}.faq-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px}.faq summary{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:18px;line-height:1.4;padding:25px 0}.faq details:first-child{border-top:1px solid #cbd1d4}.faq .plus{flex:0 0 20px}.faq details p{padding-bottom:27px;color:#647078;font-size:16px;max-width:46ch}.contact{border-top:1px solid #e1e5e7;padding-bottom:110px}.contact-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:end}.contact h2{font-size:clamp(60px,8.4vw,130px)}.contact-layout>div>p{font-size:25px;letter-spacing:-.035em;line-height:1.4;margin-bottom:40px}footer{padding:30px 4% 28px;border-top:1px solid #e3e7e9}.footer-wordmark{font-size:clamp(45px,11.5vw,180px);line-height:1.2;letter-spacing:-.075em;white-space:nowrap}.footer-wordmark span{color:#d94d38}footer>div{display:flex;justify-content:space-between;font-size:12px;color:#6f777c;border-top:1px solid #e3e7e9;padding-top:25px;margin-top:28px}footer p{max-width:none}.reveal{animation:appear .9s both;animation-timeline:view();animation-range:entry 0% entry 28%}@keyframes appear{from{opacity:.3;transform:translateY(22px)}to{opacity:1;transform:none}}dialog{border:0;padding:45px;max-width:550px;width:calc(100% - 32px);max-height:90svh;color:#191b1c}dialog::backdrop{background:#12212a80;backdrop-filter:blur(5px)}dialog h2{font-size:45px;margin:20px 0}dialog .close{position:absolute;top:12px;right:15px;font-size:28px;width:40px;height:40px}.demo-note{font-size:13px;color:#66747c;margin-bottom:25px}form{display:grid;gap:18px}label{display:grid;gap:7px;font-size:14px}input,textarea{width:100%;background:#f5f7f8;border:1px solid #d4dce0;padding:12px;border-radius:0;color:#191b1c}input::placeholder,textarea::placeholder{color:#77818a;font-size:14px}input:focus,textarea:focus{outline:2px solid #278dce;outline-offset:1px}.form-status{font-size:14px;color:#217daf}body:has(dialog[open]){overflow:hidden}
@media(min-width:1600px){.hero{max-width:1600px;margin-inline:auto}.section{padding-inline:max(9%,calc((100vw - 1320px)/2))}}
@media(max-width:1050px){header{grid-template-columns:1fr 1fr auto}.header-note{display:none}.hero{grid-template-columns:55% 45%;min-height:630px}.hero-copy{padding-left:2vw}.hero-intro{gap:25px}.hero-intro p{font-size:17px}.hero-intro .text-link{font-size:12px;gap:16px}.hero-person figcaption{left:12%}.section{padding-inline:6%}.service-list summary{grid-template-columns:30px 1fr 24px}.service-hint{display:none}.service-body{margin-left:48px}.section-heading,.approach-layout,.contact-layout{gap:35px}.faq-layout{gap:40px}}
@media(max-width:700px){header{height:90px;padding:20px 6%;grid-template-columns:1fr auto;align-items:center}.brand{font-size:13px}nav{display:none}.header-contact{font-size:13px;gap:20px}.hero{margin-inline:6%;height:auto;min-height:0;max-height:none;grid-template-columns:1fr;padding:47px 0 75px}.hero-copy{padding:0}.pipe-pair{width:67px;height:17px;gap:5px;margin-bottom:22px}.pipe-pair i{height:4px}.hero .eyebrow{font-size:9px}.hero h1{font-size:clamp(62px,13.3vw,94px);margin:20px 0 25px}.hero-intro{justify-content:space-between;gap:20px}.hero-intro p{font-size:18px}.hero-intro .text-link{font-size:12px;gap:16px}.hero-person{height:470px;margin-top:5px;max-height:none;justify-content:end}.hero-person img{width:85%;height:100%;object-position:right center}.hero-person figcaption{bottom:15px;left:0;padding:5px 0;gap:12px}.hero-person figcaption p{font-size:19px}.hero-foot{bottom:20px;font-size:9px}.hero-foot a{font-size:11px;gap:12px}.grid-lines{height:940px}.section{padding:60px 6%}.section-label{margin-bottom:36px;font-size:9px;gap:20px}.temperature{font-size:10px;gap:5px}.temperature i{width:12px}.temperature i:nth-of-type(2){margin-left:6px}.section-heading,.approach-layout,.faq-layout,.contact-layout{grid-template-columns:1fr;gap:28px}.section-heading{margin-bottom:35px}.section-heading>p{font-size:16px}.service-list summary{grid-template-columns:24px 1fr 20px;gap:10px;padding:23px 0}.service-list h3{font-size:21px;letter-spacing:-.045em}.service-body{margin-left:34px;display:block;padding-bottom:24px}.service-body p{font-size:15px;margin-bottom:20px}.service-body .text-link{font-size:13px}.principles{margin-top:12px}.principles .lead{font-size:26px}.steps{grid-template-columns:1fr;gap:30px;margin:45px 0 34px}.steps h3{margin:15px 0 13px}.steps p{max-width:42ch;font-size:16px}.faq-layout{gap:35px}.faq summary{font-size:17px}.contact h2{font-size:clamp(62px,14vw,92px)}.contact .section-label span:last-child{display:none}.contact-layout>div>p{font-size:21px;margin-bottom:27px}.primary{width:100%;padding:19px 22px}.footer-wordmark{font-size:11.5vw}footer{padding:25px 6%}footer>div{font-size:10px;gap:20px}dialog{padding:35px 24px}dialog h2{font-size:39px}}
.hero{min-height:max(580px,calc(100dvh - 110px));height:calc(100dvh - 110px);max-height:none}.hero-person{height:clamp(430px,calc(100svh - 235px),650px)}.eyebrow,.section-label,.hero-foot,.steps span{font-size:12px}.pipe-pair i{background-image:linear-gradient(0deg,#00000018,transparent 50%,#ffffff60);position:relative}.pipe-pair i:after{content:'';position:absolute;right:10px;top:-1px;bottom:-1px;width:3px;border-left:1px solid #ffffff80;border-right:1px solid #00000025;background:inherit}
@media(max-width:700px){.hero{height:auto;min-height:calc(100dvh - 90px)}.hero-person{height:440px}.hero .eyebrow,.section-label,.temperature,.hero-foot,footer>div{font-size:12px}.hero .eyebrow{max-width:30ch;line-height:1.5}.hero-foot{gap:30px}.hero-foot a{font-size:12px}.section-label{gap:20px;flex-wrap:wrap}.approach .section-label span:last-child,.process .section-label span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Proportion the desktop composition to the full-height opening. */
@media(min-width:701px){.hero-copy{padding-left:3vw}.hero h1{font-size:clamp(82px,10vw,174px)}.hero-person{height:clamp(460px,calc(100dvh - 195px),850px);max-height:none}.hero-person figcaption{bottom:-12px}}

.hero-copy>.pipe-pair{margin-bottom:24px}.hero-intro{margin-top:35px}.hero-person figcaption{background:transparent}.hero-person figcaption p{font-size:22px}.hero h1{margin-top:0}@media(max-width:700px){.hero-intro{margin-top:24px}.hero-person figcaption p{font-size:19px}}

/* Editorial images carry the personal story beyond the hero. */
.approach-story{min-width:0}.work-photo{margin-top:45px}.work-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.work-photo figcaption{font-size:12px;color:#657075;padding-top:14px}.water-story{position:relative;margin:0;isolation:isolate;overflow:hidden}.water-story>img{display:block;width:100%;height:clamp(370px,44vw,680px);object-fit:cover}.water-story figcaption{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:60px 9%;pointer-events:none}.water-story figcaption>span{font-size:12px;letter-spacing:.04em;margin-bottom:35px}.water-story figcaption>p{font-size:clamp(40px,5.5vw,82px);line-height:1.08;letter-spacing:-.055em;max-width:9ch}.approach-layout{align-items:start}@media(max-width:700px){.work-photo{margin-top:30px}.water-story>img{height:440px;object-position:65% center}.water-story figcaption{justify-content:flex-start;padding:30px 6%;background:linear-gradient(180deg,#ffffffd9,transparent 65%)}.water-story figcaption>span{font-size:11px;margin-bottom:16px}.water-story figcaption>p{font-size:42px}}


/* Keep both editorial columns on the same baseline. */
@media(min-width:701px){.approach-layout{align-items:stretch}.principles{display:flex;flex-direction:column}.principles>div{flex:1;display:flex;flex-direction:column;justify-content:center}.principles>div:last-child{padding-bottom:0;justify-content:flex-end}.principles>p{flex-shrink:0}}


.hero h1{text-transform:uppercase;font-size:clamp(65px,7.65vw,134px);letter-spacing:-.055em;line-height:1.02}@media(max-width:700px){.hero h1{font-size:clamp(44px,10.8vw,72px);letter-spacing:-.05em}}


@media(min-width:701px){.hero-person{max-height:min(850px,66vw)}}
@media(min-width:701px) and (max-width:1000px){.approach-layout{grid-template-columns:1fr;gap:38px}.approach-story{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}.work-photo{margin-top:0}.principles{display:block}.principles>div{display:block;padding:24px 0}.principles>div:last-child{padding-bottom:0}.service-body{flex-wrap:wrap}}

