/* Full-bleed homepage hero and pronounced, purposeful pointer interactions. */
.immersive-home>.header{position:absolute;inset:0 0 auto;width:100%;background:linear-gradient(180deg,#101415b3,#10141500);border-bottom-color:#ffffff24}
.immersive-home .hero{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:stretch;justify-content:center;min-height:max(840px,100svh);padding:180px var(--gutter) 110px;overflow:hidden;background:#141a1c;gap:0}
.immersive-home .hero-visual.profile-hero{position:absolute;inset:0;width:100%;height:100%;margin:0;max-width:none;z-index:-2;background:#141a1c;pointer-events:none}
.immersive-home .hero-image-frame{width:100%;height:100%;aspect-ratio:auto;transform:none;will-change:auto;overflow:hidden}
.immersive-home .hero-image-frame>img{width:100%;height:100%;object-fit:cover;object-position:65% center;transform:scale(1.035);transition:transform 1s cubic-bezier(.2,.7,.2,1);filter:saturate(.9)}
.immersive-home .hero-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#101719ed 0%,#101719ba 34%,#10171935 78%,#10171930),linear-gradient(0deg,#101719e6 0%,#10171900 42%,#10171945 100%);z-index:1}
.immersive-home .hero:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(460px circle at var(--hero-x,72%) var(--hero-y,40%),#c8ff0017,transparent 72%);opacity:0;transition:opacity .4s}
.immersive-home .hero.pointer-active:before{opacity:1}
.immersive-home .hero-copy{position:relative;z-index:2;padding:0;max-width:720px;width:100%}
.immersive-home .hero h1{font-size:clamp(92px,10.3vw,160px);line-height:.88;letter-spacing:-.035em;text-shadow:0 4px 36px #0003}
.immersive-home .hero .eyebrow{font-size:10px;letter-spacing:.15em;margin-bottom:28px}
.immersive-home .hero-description{font-size:clamp(20px,1.9vw,28px);max-width:510px;margin-top:25px}
.immersive-home .hero-support{color:#e0e4df;max-width:380px;font-size:13px}
.immersive-home .hero-actions{margin-top:28px}
.immersive-home .hero-actions .button{font-size:12px;padding:20px 27px;min-height:58px}
.immersive-home .hero-actions .text-link{border-color:#c9d2c5;color:#fff;padding:15px 0}
.immersive-home .hero-bottom{position:absolute;left:var(--gutter);right:var(--gutter);width:auto;bottom:24px;z-index:2;color:#e0e4df;border-top-color:#ffffff40;align-self:auto;grid-column:auto;padding-top:20px;padding-bottom:0}
.immersive-home .hero-visual .visual-label{display:none}
.immersive-home .hero-visual .image-caption{position:absolute;right:var(--gutter);bottom:85px;z-index:2;margin:0;padding:0;color:#d3dbd4;font-size:8px;letter-spacing:.08em;max-width:220px;text-align:right}
.immersive-home .header nav.open{background:var(--ink)}
.button,.nav-contact{position:relative;overflow:hidden;transition:transform .3s var(--motion-ease),background .25s,box-shadow .3s}
.button:before,.nav-contact:before{content:'';position:absolute;inset:-100% -60%;background:linear-gradient(110deg,transparent 42%,#ffffff50 50%,transparent 58%);transform:translateX(-75%);pointer-events:none;transition:transform .6s var(--motion-ease)}
.button:hover:before,.button:focus-visible:before,.nav-contact:hover:before{transform:translateX(75%)}
.button:hover,.button:focus-visible{transform:translateY(-5px);box-shadow:0 10px 28px #0004}
.orange:hover,.orange:focus-visible,.contact form .button:hover,.contact form .button:focus-visible,.nav-contact:hover{background:#d7ff4d;box-shadow:0 12px 32px #c8ff0040}
.button:hover>span,.button:focus-visible>span{transform:translate(7px,-2px)}
nav>a:not(.nav-contact){position:relative}
nav>a:not(.nav-contact):after{content:'';position:absolute;left:0;bottom:4px;width:100%;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--motion-ease)}
nav>a:hover:after,nav>a:focus-visible:after{transform:scaleX(1)}
a.service-image.profile-image{display:block;cursor:pointer;isolation:isolate;transition:transform .25s var(--motion-ease),box-shadow .35s;transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transform-origin:center}
a.service-image:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(0deg,#101719c4,transparent 52%);opacity:0;transition:opacity .4s}
.service:hover .service-image:after,.service:focus-within .service-image:after{opacity:1}
.service:hover .service-image,.service:focus-within .service-image{box-shadow:0 16px 38px #121a192e,0 0 0 3px var(--lime)}
.service-image>span:first-of-type{top:16px;left:16px;bottom:auto;z-index:2;font-size:24px;padding:9px 12px}
.service-image .service-image-action{position:absolute;left:20px;right:20px;bottom:20px;top:auto;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:15px;background:var(--lime);color:var(--ink);font:700 11px/1.4 var(--body);letter-spacing:.06em;padding:14px 18px;opacity:0;transform:translateY(24px);transition:opacity .3s,transform .4s var(--motion-ease)}
.service-image-action b{font-size:23px;line-height:1;font-weight:400}
.service:hover .service-image-action,.service:focus-within .service-image-action{opacity:1;transform:translateY(0)}
.service:hover .profile-image img,.service:focus-within .profile-image img{transform:scale(1.085)}
.service-body h3{transition:color .25s}
.service:hover .service-body h3,.service:focus-within .service-body h3{color:var(--accent-ink)}
.service-body>a{transition:background .25s,padding .3s,color .25s}
.service:hover .service-body>a,.service:focus-within .service-body>a{background:#e8efdc;padding-left:15px;padding-right:15px;color:#233000}
@media(hover:hover) and (pointer:fine) and (min-width:1001px){
 .motion-enabled .immersive-home .hero.pointer-active .hero-image-frame>img{transform:scale(1.055) translate(var(--hero-shift-x,0px),var(--hero-shift-y,0px));transition:transform .25s ease-out}
 .motion-enabled .service-image.pointer-active{will-change:transform}
}
@media(max-width:1100px){
 .immersive-home .hero{min-height:max(800px,100svh);padding-top:165px;padding-bottom:105px}
 .immersive-home .hero-copy{max-width:580px}.immersive-home .hero h1{font-size:12vw}
 .immersive-home .hero-actions{flex-direction:row;align-items:center;gap:26px}
}
@media(max-width:760px){
 .immersive-home .hero{min-height:max(780px,100svh);padding:155px var(--gutter) 140px}
 .immersive-home .hero h1{font-size:clamp(78px,20.5vw,125px)}
 .immersive-home .hero .eyebrow{font-size:8px;letter-spacing:.12em;margin-bottom:24px}
 .immersive-home .hero-description{font-size:20px;max-width:340px;margin-top:24px}
 .immersive-home .hero-support{font-size:12px;max-width:300px}
 .immersive-home .hero-actions{gap:22px;align-items:center;margin-top:25px}
 .immersive-home .hero-actions .button{font-size:11px;padding:18px 23px;min-height:54px}
 .immersive-home .hero-image-frame>img{object-position:69% center;transform:none}
 .immersive-home .hero-visual:after{background:linear-gradient(90deg,#101719d9,#10171973),linear-gradient(0deg,#101719eb 0%,#1017194d 65%,#10171980 100%)}
 .immersive-home .hero-visual .image-caption{left:var(--gutter);right:auto;bottom:90px;text-align:left;font-size:7px;max-width:240px;color:#c5cec6}
 .immersive-home .hero-bottom{bottom:24px;padding-top:18px}
 .service-image .service-image-action{left:16px;right:16px;bottom:16px;padding:12px 15px;font-size:10px}
}
@media(hover:none){
 .service-image .service-image-action{opacity:1;transform:none;left:auto;right:14px;bottom:14px;padding:9px 12px;font-size:9px}
 .service-image-action b{font-size:18px}
 a.service-image.profile-image{transform:none}
}
@media(max-width:380px){
 .immersive-home .hero{min-height:max(740px,100svh);padding-top:145px;padding-bottom:140px}
 .immersive-home .hero h1{font-size:20vw}.immersive-home .hero-description{font-size:19px}
 .immersive-home .hero-actions{gap:18px}.immersive-home .hero-actions .button{font-size:10px;padding:16px 18px;min-height:52px}
}
.motion-paused .hero:before{display:none}
.motion-paused .button:hover,.motion-paused .button:focus-visible{transform:none!important}
.motion-paused .hero-image-frame>img,.motion-paused a.service-image.profile-image,.motion-paused .service:hover .profile-image img,.motion-paused .service:focus-within .profile-image img{transform:none!important}
@media(prefers-reduced-motion:reduce){
 .immersive-home .hero:before{display:none}
 .immersive-home .hero-image-frame>img,a.service-image.profile-image,.service:hover .profile-image img,.service:focus-within .profile-image img,.button:hover,.button:focus-visible{transform:none!important}
}
