:root{--depth-x:50%;--depth-y:50%;--hero-shift:0px}
.depth-progress{position:fixed;z-index:1000;top:0;left:0;width:100%;height:2px;pointer-events:none;background:linear-gradient(90deg,#31aaa4,#76d7d0);transform:scaleX(0);transform-origin:left;box-shadow:0 0 14px rgba(49,170,164,.55)}
.depth-reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.75,.25,1)}
.depth-reveal.depth-visible{opacity:1;transform:none}
.hero-image{transform:translate3d(0,var(--hero-shift),0) scale(1.045);will-change:transform}
.service-grid article,.review-grid blockquote,.steps article,.area-links a,.area-services a{position:relative;overflow:hidden;transform-style:preserve-3d;transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease,background-color .28s ease}
.service-grid article:after,.review-grid blockquote:after,.steps article:after{content:"";position:absolute;inset:-2px;pointer-events:none;opacity:0;transition:opacity .28s ease;background:radial-gradient(360px circle at var(--depth-x) var(--depth-y),rgba(71,208,200,.15),transparent 48%)}
.service-grid article:hover,.review-grid blockquote:hover,.steps article:hover{border-color:rgba(72,205,197,.48);box-shadow:0 24px 55px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.06)}
.service-grid article:hover:after,.review-grid blockquote:hover:after,.steps article:hover:after{opacity:1}
.service-grid article>*,
.review-grid blockquote>*,
.steps article>*{position:relative;z-index:1;transform:translateZ(12px)}
.project-grid figure,.gallery-grid figure,.gallery-masonry figure,.about-images{transform-style:preserve-3d;perspective:900px}
.project-grid figure,.gallery-grid figure,.gallery-masonry figure{cursor:zoom-in;transition:transform .35s cubic-bezier(.2,.75,.25,1),box-shadow .35s ease}
.project-grid figure:hover,.gallery-grid figure:hover,.gallery-masonry figure:hover{transform:translateY(-6px) scale(1.012);box-shadow:0 28px 65px rgba(0,0,0,.42)}
.project-grid img,.gallery-grid img,.gallery-masonry img{transition:transform .7s cubic-bezier(.2,.75,.25,1),filter .5s ease}
.project-grid figure:hover img,.gallery-grid figure:hover img,.gallery-masonry figure:hover img{transform:scale(1.045);filter:saturate(1.04) contrast(1.025)}
.about-images img{box-shadow:0 24px 55px rgba(0,0,0,.32);transition:transform .65s cubic-bezier(.2,.75,.25,1),box-shadow .4s ease}
.about-images:hover img:first-child{transform:translate3d(-6px,-4px,18px) rotateY(1.5deg)}
.about-images:hover img:last-child{transform:translate3d(6px,4px,28px) rotateY(-1.5deg)}
.depth-lightbox{position:fixed;z-index:1100;inset:0;display:grid;place-items:center;padding:clamp(18px,4vw,64px);background:rgba(2,5,5,.94);backdrop-filter:blur(14px);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}
.depth-lightbox.open{opacity:1;visibility:visible}
.depth-lightbox img{display:block;max-width:100%;max-height:88vh;object-fit:contain;box-shadow:0 35px 100px rgba(0,0,0,.72);transform:scale(.975);transition:transform .35s cubic-bezier(.2,.75,.25,1)}
.depth-lightbox.open img{transform:scale(1)}
.depth-lightbox button{position:absolute;border:1px solid rgba(255,255,255,.28);background:rgba(6,10,10,.75);color:#fff;width:48px;height:48px;display:grid;place-items:center;cursor:pointer;font:24px/1 Arial;transition:background .2s ease,border-color .2s ease}
.depth-lightbox button:hover,.depth-lightbox button:focus-visible{background:#228e88;border-color:#55cbc4;outline:0}
.depth-lightbox .close{right:22px;top:22px}.depth-lightbox .previous{left:22px;top:50%}.depth-lightbox .next{right:22px;top:50%}
body.depth-lock{overflow:hidden}
@media(max-width:700px){.hero-image{transform:scale(1.02)}.service-grid article:hover,.review-grid blockquote:hover,.steps article:hover{transform:none!important}.project-grid figure:hover,.gallery-grid figure:hover,.gallery-masonry figure:hover{transform:none}.depth-lightbox{padding:60px 12px}.depth-lightbox .previous{left:8px}.depth-lightbox .next{right:8px}.depth-lightbox .close{right:10px;top:10px}}
@media(prefers-reduced-motion:reduce){.depth-reveal{opacity:1;transform:none;transition:none}.hero-image{transform:none!important}.service-grid article,.review-grid blockquote,.steps article,.project-grid figure,.gallery-grid figure,.gallery-masonry figure,.project-grid img,.gallery-grid img,.gallery-masonry img,.about-images img{transition:none!important;transform:none!important}}
