/* Homepage experience layer. Intentionally loaded only on the homepage. */
/* Preview branch test after enabling Netlify branch deploys: grid drift set to 24s. */
.hero:before{display:none!important}
.hero{isolation:isolate}
.hero:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.38;background:linear-gradient(90deg,transparent 0,transparent 49.8%,rgba(214,197,163,.07) 50%,transparent 50.2%,transparent 100%),linear-gradient(0deg,transparent 0,transparent 49.8%,rgba(255,255,255,.035) 50%,transparent 50.2%,transparent 100%);background-size:180px 180px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.72),transparent 92%);animation:nzcGridDrift 24s linear infinite}
.hero-grid{position:relative;z-index:2}
.hero-copy{position:relative}
.hero-copy .eyebrow{display:flex;align-items:center;gap:14px}
.hero-copy .eyebrow:after{content:"";height:1px;width:72px;background:linear-gradient(90deg,var(--sand),transparent);transform-origin:left;animation:nzcSignalLine 3.8s ease-in-out infinite}
.hero h1 span{position:relative;display:inline-block}
.hero h1 span:after{content:"";position:absolute;left:0;bottom:-9px;width:0;height:2px;background:var(--sand);opacity:.55;animation:nzcHeadlineLine 1.2s .55s cubic-bezier(.2,.75,.25,1) forwards}
.hero-panel{perspective:1000px;transform-style:preserve-3d}
.signal-main{overflow:hidden;transform:translate3d(var(--panel-x,0),var(--panel-y,0),0) rotateX(var(--panel-rx,0deg)) rotateY(var(--panel-ry,0deg));transition:transform .18s ease-out,border-color .3s ease,background .3s ease}
.signal-main:hover{border-color:rgba(214,197,163,.34);background:rgba(255,255,255,.06)}
.signal-main:after{content:"";position:absolute;inset:-120% auto -120% -55%;width:34%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.09),transparent);animation:nzcCardSweep 6.5s ease-in-out infinite;pointer-events:none}
.signal-small{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;will-change:transform}
.signal-small.one{transform:translate3d(var(--people-x,0),var(--people-y,0),0);animation:nzcFloatOne 5.5s ease-in-out infinite}
.signal-small.two{transform:translate3d(var(--tech-x,0),var(--tech-y,0),0);animation:nzcFloatTwo 6.2s ease-in-out infinite}
.signal-small.three{transform:translate3d(var(--process-x,0),var(--process-y,0),0);animation:nzcFloatThree 5.9s ease-in-out infinite}
.signal-small:hover{box-shadow:0 10px 30px rgba(0,0,0,.18)}
.hero-actions .btn-primary{position:relative;overflow:hidden}
.hero-actions .btn-primary:after{content:"";position:absolute;inset:0;transform:translateX(-130%);background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);transition:transform .65s ease}
.hero-actions .btn-primary:hover:after{transform:translateX(130%)}
.hero-actions .text-link span{display:inline-block;transition:transform .2s ease}
.hero-actions .text-link:hover span{transform:translate(4px,4px)}
.service-card{position:relative;overflow:hidden;transition:transform .3s cubic-bezier(.2,.75,.25,1),box-shadow .3s ease,border-color .3s ease}
.service-card:before{content:"";position:absolute;left:0;top:0;width:0;height:3px;background:var(--sand);transition:width .45s cubic-bezier(.2,.75,.25,1)}
.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow);border-color:rgba(16,33,31,.22)}
.service-card:hover:before{width:100%}
.service-card .number{transition:transform .25s ease,color .25s ease}.service-card:hover .number{transform:translateX(6px);color:var(--ink)}
.expertise-list div{position:relative;transition:padding-left .25s ease,background .25s ease}
.expertise-list div:before{content:"";position:absolute;left:0;top:50%;width:0;height:1px;background:var(--sand);transition:width .28s ease}
.expertise-list div:hover{padding-left:18px;background:rgba(255,255,255,.025)}
.expertise-list div:hover:before{width:8px}
.site-header:after{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:calc(var(--page-progress,0)*1%);background:var(--sand);transition:width .08s linear}
@keyframes nzcGridDrift{to{background-position:180px 90px,90px 180px}}
@keyframes nzcSignalLine{0%,100%{transform:scaleX(.35);opacity:.45}50%{transform:scaleX(1);opacity:1}}
@keyframes nzcHeadlineLine{to{width:42%}}
@keyframes nzcCardSweep{0%,30%{left:-55%}60%,100%{left:145%}}
@keyframes nzcFloatOne{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes nzcFloatTwo{0%,100%{translate:0 0}50%{translate:5px -5px}}
@keyframes nzcFloatThree{0%,100%{translate:0 0}50%{translate:-4px 6px}}
@media(max-width:900px){.hero:after{background-size:130px 130px;opacity:.25}.service-card:hover{transform:none}.expertise-list div:hover{padding-left:0}}
@media(prefers-reduced-motion:reduce){.hero:after,.hero-copy .eyebrow:after,.signal-main:after,.signal-small.one,.signal-small.two,.signal-small.three{animation:none!important}.signal-main{transform:none!important}.site-header:after{transition:none}}
