.hero::before{animation:panel-enter 1.15s cubic-bezier(.22,1,.36,1) both}
.hero::after{animation:accent-enter 1.25s .25s cubic-bezier(.22,1,.36,1) both}
.header{animation:header-enter .9s .15s both}
.hero-content h1{animation:title-enter 1s .58s both}
.hero-content>p{animation:subtitle-enter 1s .85s both}
.about{position:relative}
.collage{perspective:1000px}
.collage>img{transition:transform .35s ease-out,box-shadow .4s;will-change:transform}
.collage>img:hover{box-shadow:0 20px 35px #0c26472b}
.seal{transition:box-shadow .4s}
.seal:hover{box-shadow:0 0 0 10px #00b87915,0 12px 35px #0c26472b}
.service{overflow:hidden;transition:transform .4s,box-shadow .4s}
.service:before{transition:background .5s}
.service::after{content:"";position:absolute;bottom:0;left:0;height:4px;width:100%;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .5s}
.service h3{transition:color .65s}
.service:hover{transform:translateY(-8px);box-shadow:0 18px 32px #0c264725}
.service:hover h3{color:#31e6a1}
.service:hover::after{transform:scaleX(1)}
.industry-grid article{overflow:hidden;transition:transform .4s,box-shadow .4s,border-color .4s}
.industry-grid article::after{content:"";position:absolute;bottom:0;left:0;right:0;height:8px;background:#43c799;transform:scaleX(0);transform-origin:left;transition:transform .45s}

.industry-grid article:hover{transform:translateY(-7px);border-color:#43c799;box-shadow:0 15px 30px #0c264712}
.industry-grid article:hover::after{transform:scaleX(1)}
.industry-grid h3,.industry-grid svg{transition:color .4s,transform .45s}
.industry-grid article:hover h3{color:#009c65}
.industry-grid article:hover svg{transform:translateY(-4px)}
.offices{position:relative;isolation:isolate;overflow:hidden}
.offices::before{content:"";position:absolute;z-index:-1;inset:-30% -10%;background:linear-gradient(115deg,transparent 60%,#16b4a909 60%,#16b4a909 72%,transparent 72%);animation:office-drift 16s ease-in-out infinite alternate}
.offices h2 span{background:linear-gradient(100deg,#39d7a9,#38a4dd,#39d7a9);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;animation:gradient-flow 9s ease-in-out infinite alternate}
.reasons article{border-top:2px solid transparent;transition:border-color .4s,transform .4s}
.reasons article:hover{border-color:var(--green);transform:translateY(-5px)}
.contact button{transition:background .3s,box-shadow .3s,transform .3s}
.contact button span{transition:transform .3s}
.contact button:hover{box-shadow:0 8px 20px #00b87930;transform:translateY(-2px)}
.contact button:hover span{transform:translateX(6px)}
input,textarea{transition:border-color .25s,box-shadow .25s}
input:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #00b87912}
@keyframes panel-enter{from{opacity:0;transform:translateX(-15%)}to{opacity:1;transform:translateX(0)}}
@keyframes accent-enter{from{opacity:0;transform:translate(12%,20%)}to{opacity:1;transform:translate(0,0)}}
@keyframes header-enter{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:none}}
@keyframes title-enter{from{opacity:0;transform:translateY(-45px)}to{opacity:1;transform:none}}
@keyframes subtitle-enter{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}
@keyframes gradient-flow{to{background-position:100% center}}
@keyframes office-drift{to{transform:translateX(6%)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.collage>img{transform:none!important}}
