.hero-copy,.contact-copy{position:relative;isolation:isolate}
.hero-copy>.eyebrow,.hero-copy>.assemble-title,.hero-copy>.lead,.hero-copy>.line-link,.contact-copy>.eyebrow,.contact-copy>.assemble-title,.contact-copy>.contact-details,.contact-copy>.line-link{position:relative;z-index:1}
.hero-assembly{position:absolute;inset:-2.5rem -3rem -2rem -2rem;z-index:0;pointer-events:none;overflow:visible}
.hero-assembly-piece{position:absolute;display:block;opacity:0;transform:perspective(600px) translate3d(var(--assemble-x),var(--assemble-y),var(--assemble-z)) rotateX(var(--assemble-rx)) rotateY(var(--assemble-ry)) rotateZ(var(--assemble-rz));filter:blur(2px);will-change:transform,opacity,filter}
.hero-assembly-piece.one{left:5%;top:27%;width:clamp(8rem,17vw,15rem);height:1px;background:linear-gradient(90deg,transparent,#a8e4d2 18%,#f4a6b8 78%,transparent)}
.hero-assembly-piece.two{right:8%;top:52%;width:clamp(4rem,8vw,8rem);height:clamp(4rem,8vw,8rem);border:1px solid rgba(189,183,255,.72);border-radius:50%}
.hero-assembly-piece.three{left:18%;bottom:13%;width:.5rem;height:.5rem;border-radius:50%;background:#ffe2a6;box-shadow:0 0 1.4rem rgba(255,226,166,.72)}
.hero-assembly-piece.four{right:25%;bottom:25%;width:clamp(3rem,7vw,7rem);height:1px;background:#8edcf1;transform-origin:right center}
.hero-assembly.is-playing .hero-assembly-piece{animation:assemble-piece-in .95s cubic-bezier(.22,1,.36,1) var(--assemble-delay) both}
.assemble-title{overflow:visible}
.assemble-title .assemble-char{display:inline-block;white-space:pre;will-change:transform,opacity,filter}
.assemble-title.assemble-preparing .assemble-char{opacity:0;filter:blur(2px);transform:perspective(600px) translate3d(var(--assemble-x),var(--assemble-y),var(--assemble-z)) rotateX(var(--assemble-rx)) rotateY(var(--assemble-ry)) rotateZ(var(--assemble-rz))}
.assemble-title.assemble-playing .assemble-char{animation:assemble-char-in 1.05s cubic-bezier(.22,1,.36,1) var(--assemble-delay) both}
@keyframes assemble-piece-in{0%{opacity:0;filter:blur(2px)}35%{opacity:.8}100%{opacity:.5;filter:none;transform:none}}
@keyframes assemble-char-in{0%{opacity:0;filter:blur(2px);transform:perspective(600px) translate3d(var(--assemble-x),var(--assemble-y),var(--assemble-z)) rotateX(var(--assemble-rx)) rotateY(var(--assemble-ry)) rotateZ(var(--assemble-rz))}70%{opacity:1;filter:blur(0);transform:perspective(600px) translate3d(0,0,0) rotateX(0) rotateY(0) rotateZ(0)}100%{opacity:1;filter:none;transform:none}}
@media(max-width:800px){.hero-assembly{inset:-1rem -1rem -1rem -1rem}.hero-assembly-piece.two{right:2%;top:50%}.hero-assembly-piece.four{right:18%;bottom:20%}}
@media(prefers-reduced-motion:reduce){.hero-assembly-piece{opacity:.45!important;filter:none!important;transform:none!important}.assemble-title.assemble-preparing .assemble-char{opacity:1!important;filter:none!important;transform:none!important}.assemble-title .assemble-char{animation:none!important}}
