@import url("https://fonts.googleapis.com/css2?family=Barlow:wght@500;600;700;800&family=Source+Sans+3:wght@400;500;600;700&display=swap");
:root{--green:#00875a;--ink:#17191a;--orange:#f05a24;--paper:#f4f4f1;--line:#d7d9d4}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 'Source Sans 3',Arial,sans-serif}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:5px}.defs{position:absolute;width:0;height:0}.skip{position:fixed;top:-100px;left:10px;z-index:10;background:white;padding:12px}.skip:focus{top:10px}.wrap{width:90%;max-width:1400px;margin-inline:auto}.review{padding:8px 5%;background:var(--ink);color:white;font-size:12px;letter-spacing:.08em;display:flex;justify-content:space-between;gap:20px}.review span{letter-spacing:0;color:#c7cec9}header{position:sticky;top:0;z-index:5;background:var(--paper);padding:20px 5%;display:flex;gap:32px;align-items:center;border-bottom:1px solid var(--line)}.brand{display:inline-flex;gap:12px;align-items:center}.brand svg{height:43px;width:43px;color:var(--green)}.brand b{font-size:28px;line-height:1;letter-spacing:-1px}.brand i{display:block;height:3px;background:var(--green);margin-top:7px;border-right:8px solid var(--orange)}nav{display:flex;gap:25px;margin-left:auto;font-size:14px}nav a:hover{color:var(--green)}.button{border:0;display:inline-flex;align-items:center;justify-content:center;background:var(--green);color:white;padding:17px 24px;font-weight:700;font-size:14px;letter-spacing:.025em}.button:hover{background:#006b48}header .button{padding:13px 18px}h1,h2,h3{font-family:'Barlow',Impact,sans-serif;line-height:1.02;margin:0 0 25px;font-weight:600}h1{font-size:clamp(64px,7.7vw,120px);letter-spacing:-.015em}h2{font-size:clamp(40px,4.4vw,68px)}h3{font-size:29px;line-height:1.1}p{margin:0 0 22px}em{font-style:normal;color:var(--green)}.eyebrow{font-size:12px;letter-spacing:.15em;font-weight:700;color:var(--green);margin-bottom:23px}.hero{display:grid;grid-template-columns:1.15fr 1fr;gap:5%;padding-block:65px}.lead{font-size:18px;max-width:570px;color:#535953}.actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin:30px 0}.text-link,.text-button{font-size:14px;font-weight:700}.text-link{border-bottom:1px solid var(--ink);padding-bottom:4px}.capability-line{font-size:12px;letter-spacing:.1em;margin:35px 0 0}.photo-slot{background:#24282a;color:#fff;padding:32px}.hero-media{display:flex;flex-direction:column;justify-content:space-between;min-height:530px}.hero-media>span{font:14px monospace;color:#c6cec8}.hero-media svg{width:48%;height:auto;aspect-ratio:1;align-self:center;color:var(--green)}.hero-media p,.founder-slot p{font-size:12px;color:#b3bbb6;margin:10px 0 0}.section{padding-block:95px}.split{display:grid;grid-template-columns:1fr 1.2fr;gap:9%}.intro{border-block:1px solid var(--line)}.large-copy{font-size:20px;line-height:1.65}.highlights{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:20px;margin:38px 0 24px}.highlights strong{display:block;font:600 56px/1 'Barlow',Impact,sans-serif}.highlights .wide-stat{font-size:28px}.highlights span{display:block;font-size:13px;margin-top:12px}.note{font-size:12px;color:#646d66}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:40px}.services article{border-top:1px solid #aeb6ae;padding-top:20px}.number{font:13px monospace;color:var(--green);display:block;margin-bottom:32px}.services p{color:#5b635c;max-width:380px}.section-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:42px;padding-top:30px;border-top:1px solid var(--line)}.section-bottom p{margin:0}.text-button{border:0;background:none;color:var(--green);padding:10px 0;white-space:nowrap}.dark{background:var(--ink);color:white}.dark .eyebrow{color:#81cbb0}.dark p{color:#c5cdc7}.processes{display:grid;grid-template-columns:1fr 1fr;margin:36px 0;gap:0 25px}.processes span{padding:15px 0;border-bottom:1px solid #46504a;font-size:14px}.processes span:before{content:'+';color:var(--orange);margin-right:12px}.gallery-note{font-size:14px;color:#646d66;max-width:680px}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 24px;margin:32px 0}.project summary{list-style:none;cursor:pointer}.project summary::-webkit-details-marker{display:none}.project-placeholder{height:255px;background:#e2e4df;padding:24px;display:flex;flex-direction:column;justify-content:space-between}.project:nth-child(2n) .project-placeholder{background:#d7dbd5}.project-placeholder span,.project-placeholder small{font-size:12px;color:#5d685f}.project-placeholder b{font:600 33px/1.05 'Barlow',Impact,sans-serif;max-width:220px;color:#5e6b61}.project-label{display:flex;justify-content:space-between;font-size:14px;font-weight:600;padding:16px 0}.project-label>span{color:var(--green)}.project-details{font-size:14px;padding:0 0 18px;color:#5b655e}.project-details span{display:block}.industries{background:#e7e9e3}.industry-list{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 30px;margin:40px 0}.industry-list span{font-size:14px;padding-top:18px;border-top:1px solid #a8b1a8}.industries p:last-child{max-width:780px;margin-bottom:0}.about{align-items:center}.founder-slot{min-height:430px;background:#34383a;display:flex;flex-direction:column;justify-content:space-between}.founder-slot>span{font-size:12px;letter-spacing:.1em;color:#c6cec8}.founder-slot strong{font:600 clamp(54px,5vw,78px)/1 'Barlow',Impact,sans-serif}.nationwide{border-top:1px solid var(--line);text-align:center}.nationwide p:last-child{margin:0}.quote-cta h2{font-size:clamp(56px,6vw,90px)}.email{display:block;margin-top:23px;font-size:18px}footer{display:grid;grid-template-columns:1fr 1fr 1fr;gap:35px;padding-block:50px}footer .brand{margin-bottom:22px}footer p{font-size:14px}footer .note{font-size:12px}footer a{overflow-wrap:anywhere}.legal{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px}dialog{width:min(760px,94vw);max-height:92dvh;border:0;background:var(--paper);padding:36px;color:var(--ink);overflow:auto}dialog::backdrop{background:#111b}dialog .eyebrow{margin-bottom:10px}dialog h2{font-size:42px;margin-bottom:0}.modal-heading{display:flex;justify-content:space-between;align-items:start;gap:15px}.close{border:0;background:none;font-size:32px;line-height:1;padding:4px 10px}.demo-notice{padding:13px;background:#e3ebe5;font-size:13px;margin:24px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{font-size:14px;font-weight:600;display:block;margin-bottom:20px}input,textarea{display:block;margin-top:7px;background:white;border:1px solid #b4bdb5;padding:11px 12px;width:100%;min-width:0;border-radius:0;font-size:16px;color:var(--ink)}input:focus,textarea:focus{outline:2px solid var(--green);outline-offset:2px}textarea{resize:vertical}.upload{border:1px dashed #829789;padding:20px}.upload input{border:0;background:transparent;padding:8px 0;max-width:100%;font-size:14px}.upload span{font-size:12px;font-weight:400;color:#59675e;display:block}.email-alternative{font-size:14px;border-top:1px solid var(--line);padding-top:20px;margin:24px 0 0}.email-alternative a{text-decoration:underline;overflow-wrap:anywhere}#file-list{padding-left:20px;font-size:13px;overflow-wrap:anywhere}#file-error{color:#a93418;font-size:14px}#form-status{font-size:14px;margin-top:20px}#form-status:empty,#file-error:empty{display:none}
@media(max-width:1000px){header{gap:20px}nav{gap:15px}header .button{font-size:12px}.hero{gap:4%}.hero-media{min-height:480px}.services{gap:25px}.industry-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){html{scroll-padding-top:85px}.review span{display:none}header{padding:16px 5%;justify-content:space-between}nav{display:none}.brand b{font-size:23px}.brand svg{width:33px;height:33px}header .button{font-size:12px;padding:12px}.hero{grid-template-columns:1fr;padding-block:40px;gap:30px}h1{font-size:clamp(60px,12vw,90px)}.hero-media{min-height:330px}.hero-media svg{width:140px}.section{padding-block:58px}.split{grid-template-columns:1fr;gap:30px}.large-copy{font-size:18px}.services,.projects{grid-template-columns:1fr 1fr}.project-placeholder{height:220px;padding:18px}.project-placeholder b{font-size:28px}.section-bottom{align-items:start;flex-direction:column;gap:12px}.founder-slot{min-height:320px}footer{grid-template-columns:1fr;gap:15px}dialog{padding:24px}.form-grid{grid-template-columns:1fr;gap:0}}
@media(max-width:430px){.services,.projects{grid-template-columns:1fr}.highlights{gap:12px}.highlights strong{font-size:44px}.highlights .wide-stat{font-size:23px}.highlights span{font-size:12px}.processes{grid-template-columns:1fr}.brand{gap:8px}header .button{max-width:150px}.industry-list{gap:20px}.actions{gap:22px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Supplied Kaldera pattern, softened behind page copy. */
body{background-color:var(--paper);background-image:linear-gradient(rgba(244,244,241,.72),rgba(244,244,241,.72)),url("colored-patterns.svg");background-size:auto,1440px 560px;background-position:center top;background-repeat:repeat;}
@media(max-width:760px){body{background-size:auto,1000px auto;}}

/* Temporary stock photography. */
.stock-photo{position:relative;overflow:hidden;padding:0;background:#34383a}.stock-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.stock-photo .stock-caption{position:absolute;bottom:0;left:0;right:0;margin:0;padding:10px 14px;background:rgba(23,25,26,.88);color:#fff;font:12px/1.5 'Source Sans 3',Arial,sans-serif;letter-spacing:.025em}.hero-media img{object-position:50% 45%}.project-placeholder{height:280px}.founder-slot img{object-position:center}.gallery-note a{text-decoration:underline}

.brand .brand-logo{display:block;width:220px;height:auto;max-width:100%}.brand{flex-shrink:0}@media(max-width:760px){.brand .brand-logo{width:170px}}@media(max-width:380px){.brand .brand-logo{width:140px}header{gap:12px}}

/* Refined industrial typography. */
body{font-family:"Source Sans 3",Arial,sans-serif;font-size:18px;line-height:1.65}h1,h2,h3{font-family:Barlow,Arial,sans-serif;font-weight:700;letter-spacing:-.025em}h1{font-size:clamp(40px,4.8vw,74px);line-height:1.06}h2{font-size:clamp(30px,3vw,46px);line-height:1.12}h3{font-size:24px;line-height:1.2;letter-spacing:-.015em}.quote-cta h2{font-size:clamp(36px,4vw,62px)}.lead{font-size:20px;line-height:1.6}.eyebrow{font-family:Barlow,Arial,sans-serif;font-weight:600;font-size:13px;letter-spacing:.13em}.button,nav,.text-link,.text-button{font-family:Barlow,Arial,sans-serif;font-weight:600;letter-spacing:.02em}.highlights strong{font-family:Barlow,Arial,sans-serif;font-weight:700;font-size:48px}.highlights .wide-stat{font-size:23px;line-height:1.15}dialog h2{font-size:34px}.project-placeholder b{font-size:27px;line-height:1.15}@media(max-width:760px){h1{font-size:clamp(38px,7.4vw,60px)}h2{font-size:clamp(30px,5.5vw,42px)}.quote-cta h2{font-size:clamp(36px,7vw,54px)}.lead{font-size:19px}.highlights strong{font-size:40px}.highlights .wide-stat{font-size:21px}dialog h2{font-size:28px}}

.policy-page{max-width:850px}.policy-page h1{font-size:clamp(36px,5vw,60px)}.policy-page h2{font-size:26px;margin-top:36px}.policy-page a,.legal a,.contact-links a,.email-alternative~p a{text-decoration:underline;text-underline-offset:3px}.policy-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:22px}.legal p{margin-bottom:14px}.contact-links{margin-top:16px}

/* Genuine project photography: preserve the full fabrication in gallery views. */
.projects .project-placeholder{height:auto;aspect-ratio:3/4}.projects .project-placeholder img{object-fit:contain}.hero-media{min-height:560px}.hero-media img{object-position:center}.founder-slot{min-height:490px}.project-details a{text-decoration:underline;display:inline-block;margin-top:12px}@media(max-width:760px){.hero-media{min-height:440px}.founder-slot{min-height:440px}}

.eyebrow,.number,.text-button,nav a:hover{color:#006b48}.dark .eyebrow{color:#81cbb0}.note,.gallery-note{color:#505b53}.dark .note{color:#c5cdc7}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.spam-trap{display:none!important}.form-intro{font-size:15px;margin-top:22px}.button:disabled{opacity:.65;cursor:wait}
[data-upload-copy]{display:none!important}

/* Restrained section assembly: one reveal, with no scroll locking. */
@media(prefers-reduced-motion:no-preference){
 .scroll-reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .65s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}
 .scroll-reveal.is-visible{opacity:1;transform:none}
}
@media print{.scroll-reveal{opacity:1!important;transform:none!important}}

/* The original textured logo assembles once, without moving the page. */
.logo-entrance{position:relative;display:block}.logo-pieces{display:none}
@media(prefers-reduced-motion:no-preference){
.logo-intro .logo-entrance>.brand-logo{animation:logo-complete 1.5s step-end both}
.logo-intro .logo-pieces{display:block;position:absolute;inset:0;pointer-events:none;animation:logo-layers-done 1.5s step-end forwards}
.logo-piece,.logo-underline{position:absolute;inset:0;background:url('/kaldera-logo.png') center/100% 100% no-repeat}
.logo-piece{clip-path:inset(0 var(--right) 15% var(--left));animation:logo-letter-in .01s step-end var(--delay) both}
.logo-symbol{clip-path:inset(0 var(--right) 0 0);transform-origin:11.5% 50%;animation:logo-symbol-in .42s cubic-bezier(.2,.7,.25,1) both}
.logo-underline{clip-path:inset(85% 0 0 24.5%);animation:logo-line-in .25s ease-out 1.2s both}
}
@keyframes logo-symbol-in{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}
@keyframes logo-letter-in{from{opacity:0}to{opacity:1}}
@keyframes logo-line-in{from{opacity:0;clip-path:inset(85% 75.5% 0 24.5%)}to{opacity:1;clip-path:inset(85% 0 0 24.5%)}}
@keyframes logo-complete{from{opacity:0}to{opacity:1}}
@keyframes logo-layers-done{from{visibility:visible}to{visibility:hidden}}
@media print{.logo-entrance>.brand-logo{opacity:1!important;animation:none!important}.logo-pieces{display:none!important}}
