/* Spatial arrival: the interface approaches the viewer in independent planes. */
.hero-copy{perspective:1400px;perspective-origin:50% 36%}
.headline-line{perspective:1100px;perspective-origin:10% 50%}
.hero-copy h1>.headline-line{overflow:visible}
.family-selector{perspective:1100px;perspective-origin:50% 30%;overflow:visible}
body:not(.effects-off).page-choreographed #site .hero{
 animation:spatial-stage 2.6s .3s cubic-bezier(.3,.12,.15,1) both!important;
 transform-origin:50% 35%;backface-visibility:hidden;
}
body:not(.effects-off).page-choreographed .topline{animation:spatial-topline 1.2s .2s var(--motion-ease) both}
body:not(.effects-off).page-choreographed .header nav a{
 animation:spatial-navigation 1s var(--motion-ease) both;
 animation-delay:calc(.55s + var(--nav-order,0)*.1s);transform-origin:50% 50%;
}
body:not(.effects-off).page-choreographed .header-quote,body:not(.effects-off).page-choreographed .menu-toggle{
 animation:spatial-navigation 1.1s .8s var(--motion-ease) both;
}
body:not(.effects-off).page-choreographed .headline-line>span{
 animation:spatial-type 1.65s .4s cubic-bezier(.16,.7,.2,1) both;transform-origin:left center;backface-visibility:hidden;
}
body:not(.effects-off).page-choreographed .headline-line:nth-child(2)>span{animation-delay:.58s}
body:not(.effects-off).page-choreographed .hero-copy>p{
 animation:spatial-copy 1.6s .65s var(--motion-ease) both;transform-origin:right center;backface-visibility:hidden;
}
body:not(.effects-off).page-choreographed .hero-copy>.button{
 animation:spatial-button 1.35s .95s cubic-bezier(.2,.75,.2,1) both;clip-path:none;backface-visibility:hidden;
}
body:not(.effects-off).page-choreographed .hero-families{animation:spatial-copy 1.35s 1.1s var(--motion-ease) both}
body:not(.effects-off).page-choreographed .flight-deck{
 animation:spatial-deck 1.8s .85s cubic-bezier(.2,.75,.2,1) both;transform-origin:50% 0;backface-visibility:hidden;clip-path:none;
}
body:not(.effects-off).page-choreographed .deck-heading{animation:spatial-navigation 1s 1.1s var(--motion-ease) both}
body:not(.effects-off).page-choreographed .family-selector a{
 animation:spatial-tile 1.25s cubic-bezier(.17,.8,.2,1) both;
 animation-delay:calc(1.3s + var(--family-index,0)*.13s);transform-origin:50% 50%;backface-visibility:hidden;
}
body:not(.effects-off).page-choreographed .brand-bridge{
 animation:spatial-bridge 1.8s 1.45s var(--motion-ease) both;transform-origin:50% 50%;clip-path:none;
}
body:not(.effects-off).page-choreographed .expertise>.section-heading{animation:spatial-next 1.7s 1.6s var(--motion-ease) both}
/* Replace the flat construction grid with a short-lived perspective field. */
.assembly-guides{perspective:900px;perspective-origin:50% 40%}
.assembly-guides i{display:none}
.assembly-guides::before{
 content:'';position:absolute;inset:12% -30% -20%;border:1px solid #398fca18;
 background-image:linear-gradient(#348dca22 1px,transparent 1px),linear-gradient(90deg,#348dca22 1px,transparent 1px);
 background-size:110px 110px;transform-origin:50% 0;opacity:0;
}
body:not(.effects-off).page-choreographed .assembly-guides::before{animation:spatial-field 2.9s ease-out both}
@keyframes spatial-stage{
 0%{opacity:0;transform:perspective(1700px) translateZ(-850px) rotateY(-18deg) rotateX(10deg);box-shadow:35px 45px 95px #07274320}
 38%{opacity:1}
 100%{opacity:1;transform:none;box-shadow:0 0 0 transparent}
}
@keyframes spatial-type{
 from{opacity:0;transform:translateZ(-330px) rotateY(-26deg) rotateX(7deg)}
 to{opacity:1;transform:none}
}
@keyframes spatial-copy{
 from{opacity:0;transform:translateZ(-400px) rotateY(24deg)}
 to{opacity:1;transform:none}
}
@keyframes spatial-button{
 0%{opacity:0;transform:translateZ(-310px) rotateX(32deg);box-shadow:0 24px 40px #0a3d6f20}
 100%{opacity:1;transform:none;box-shadow:0 0 0 transparent}
}
@keyframes spatial-deck{
 from{opacity:0;transform:perspective(1100px) translateZ(-340px) rotateX(28deg)}
 to{opacity:1;transform:none}
}
@keyframes spatial-tile{
 from{opacity:0;transform:translateZ(-190px) rotateY(-64deg) rotateX(7deg);box-shadow:16px 18px 24px #133f5d17}
 to{opacity:1;transform:none;box-shadow:0 0 0 transparent}
}
@keyframes spatial-bridge{
 from{opacity:0;transform:perspective(1300px) translateZ(-350px) rotateY(10deg)}
 to{opacity:1;transform:none}
}
@keyframes spatial-next{
 from{opacity:0;transform:perspective(1300px) translateZ(-200px) rotateX(8deg)}
 to{opacity:1;transform:none}
}
@keyframes spatial-navigation{
 from{opacity:0;transform:perspective(700px) translateZ(-130px) rotateX(-42deg)}
 to{opacity:1;transform:none}
}
@keyframes spatial-topline{from{opacity:0;transform:perspective(1100px) rotateX(-75deg)}to{opacity:1;transform:none}}
@keyframes spatial-field{
 0%{opacity:0;transform:translateZ(-1000px) rotateX(58deg)}
 30%{opacity:.65}
 100%{opacity:0;transform:translateZ(80px) rotateX(58deg)}
}
@media(max-width:620px){
 .hero-copy{perspective:900px}.headline-line{perspective:750px}.family-selector{perspective:800px}
 @keyframes spatial-stage{0%{opacity:0;transform:perspective(1000px) translateZ(-340px) rotateY(-8deg) rotateX(5deg)}38%{opacity:1}100%{opacity:1;transform:none}}
 @keyframes spatial-type{from{opacity:0;transform:translateZ(-160px) rotateY(-17deg)}to{opacity:1;transform:none}}
 @keyframes spatial-copy{from{opacity:0;transform:translateZ(-180px) rotateY(13deg)}to{opacity:1;transform:none}}
 @keyframes spatial-deck{from{opacity:0;transform:perspective(850px) translateZ(-180px) rotateX(18deg)}to{opacity:1;transform:none}}
 .assembly-guides::before{background-size:70px 70px}
}
@media(prefers-reduced-motion:reduce){
 .hero-copy,.headline-line,.family-selector{perspective:none}
 #site *,#site *::before,#site *::after{animation:none!important;transition:none!important}
 .assembly-guides{display:none!important}
}

.js-motion:not(.effects-off) .pending-reveal:not(.visible){transform:perspective(1200px) translateZ(-120px) rotateY(-4deg)}
.effects-off .pending-reveal{opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.js-motion .pending-reveal{opacity:1!important;transform:none!important}}
