/* The approved assembly hero, scoped to preserve the service/contact layout. */
.assembly-header{position:absolute;inset:0 0 auto;z-index:10;height:82px;max-width:none;padding-inline:4.8vw;border-bottom:1px solid #ffffff12}
.assembly-header .header-cta{font-size:12px;min-height:42px;padding:10px 19px}
#assembly{--red:#f03923;position:relative;height:100svh;min-height:700px;color:#f7f4ed;view-timeline-name:--assembly;view-timeline-axis:block}
#assembly.is-live{height:360svh;min-height:1900px}
#assembly .stage{position:sticky;top:0;height:100svh;min-height:min(660px,100svh);overflow:clip;isolation:isolate;background:#101111}
#assembly .stage-light{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 70% 43%,#27272680 0,transparent 56%),linear-gradient(119deg,#22232250,transparent 42%)}
#assembly .hero-copy{position:absolute;left:4.8vw;right:4.8vw;top:115px;z-index:2;display:flex;justify-content:space-between;padding:0;pointer-events:none}
#assembly .eyebrow{font-size:10px;font-weight:500;letter-spacing:1.7px;line-height:1.5;color:#a3a49e}
#assembly h1{font-size:clamp(58px,6.3vw,96px);line-height:.92;letter-spacing:-.065em;font-weight:650;margin-top:17px}
#assembly h1 em{font-size:1.08em;line-height:inherit}
#assembly .hero-copy>div{transform-origin:top left}
#assembly .scene-wrap{position:absolute;inset:18% 0 12%;touch-action:pan-y;overflow:clip}
#assembly .scene-wrap canvas{display:block;width:100%;height:100%}
#assembly .scene-fallback{position:absolute;left:0;bottom:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;display:block}
#assembly .scene-wrap:not(.ready){top:40%;bottom:16%}
#assembly .scene-wrap.ready .scene-fallback{visibility:hidden}
#assembly .scene-wrap.ready{transform:scale(var(--stage-scale,1));transform-origin:center bottom}
#assembly .scene-caption{position:absolute;bottom:86px;left:4.8vw;right:4.8vw;display:flex;align-items:center;gap:20px;pointer-events:none}
#assembly .caption-index{color:var(--red);font-size:10px;letter-spacing:1.6px}
#assembly .scene-caption p{font-size:14px;color:#deddd8;letter-spacing:-.02em}
#assembly .concept-label{margin-left:auto;color:#81827e;font-size:9px}
#assembly .scene-controls{position:absolute;bottom:22px;left:4.8vw;right:4.8vw;border-top:1px solid #ffffff20;display:flex;align-items:center;justify-content:space-between;padding-top:18px}
#assembly .scroll-cue{display:flex;align-items:center;gap:13px;font-size:11px;color:#b7b8b1;letter-spacing:.04em}
#assembly .scroll-cue>span:first-child{color:var(--red);font-size:19px}
#assembly .scene-controls button{border:1px solid #ffffff30;border-radius:30px;background:#151615;padding:9px 16px;font-size:10px}
#assembly .scene-controls button:hover{border-color:#fff}
#assembly .progress-track{position:absolute;left:0;right:0;bottom:0;height:2px;background:#ffffff08}
#assembly .progress-fill{height:100%;background:var(--red);transform:scaleX(0);transform-origin:left}
#assembly .hero-services{position:absolute;right:4.8vw;top:115px;width:31%;max-width:365px;padding-left:28px;border-left:1px solid #ffffff35;z-index:5;pointer-events:auto}
#assembly .hero-services>.eyebrow{font-size:9px;letter-spacing:1.4px;margin-bottom:12px}
#assembly .hero-services nav a,#assembly .mobile-services nav a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:49px;border-bottom:1px solid #ffffff25;font-size:clamp(15px,1.42vw,21px);letter-spacing:-.035em;line-height:1.3}
#assembly .hero-services nav a span,#assembly .mobile-services nav a span{flex:none;font-size:19px}
#assembly .hero-services nav a:hover,#assembly .hero-services nav a:focus-visible,#assembly .mobile-services nav a:hover{color:#ff725e;border-bottom-color:var(--red)}
#assembly [data-service][aria-current=true]{color:#ff725e;border-bottom-color:var(--red)}
#assembly .services-all{display:flex;align-items:center;justify-content:space-between;width:fit-content;gap:30px;font-size:11px;padding-bottom:6px;margin-top:17px;border-bottom:1px solid #ffffff70}
#assembly .mobile-services{display:none;pointer-events:auto}
#assembly.is-static{height:100svh;min-height:700px}
#assembly.is-static .stage{position:relative}
#assembly.is-static .progress-fill{transform:scaleX(1)}
#assembly.is-static .scene-wrap{top:40%;bottom:16%}
@supports ((animation-timeline:view()) and (animation-range:contain)){
  @media(min-width:801px) and (prefers-reduced-motion:no-preference){
    #assembly.is-live .hero-copy>div{animation:assembly-title-retreat linear both;animation-timeline:--assembly;animation-range:contain 0% contain 70%}
    #assembly.is-live .hero-services{animation:assembly-services-retreat linear both;animation-timeline:--assembly;animation-range:contain 0% contain 70%}
    @keyframes assembly-title-retreat{to{transform:translateY(-70px) scale(.68)}}
    @keyframes assembly-services-retreat{to{transform:translateY(-70px)}}
  }
}
@media(min-width:801px){#assembly.motion-paused .hero-copy>div{animation:none;transform:translateY(-70px) scale(.68)}#assembly.motion-paused .hero-services{animation:none;transform:translateY(-70px)}}
@supports not ((animation-timeline:view()) and (animation-range:contain)){@media(min-width:801px){#assembly.is-live .hero-copy>div{transform:translateY(calc(-70px * var(--assembly-retreat,0))) scale(calc(1 - .32 * var(--assembly-retreat,0)))}#assembly.is-live .hero-services{transform:translateY(calc(-70px * var(--assembly-retreat,0)))}}}
@media(min-width:1600px){#assembly .hero-copy{top:135px}#assembly .scene-wrap{inset:18% 3% 12%}}
@media(min-width:801px) and (max-height:760px){#assembly .hero-services{top:106px;padding-left:22px}#assembly .hero-services nav a{min-height:38px;font-size:15px}#assembly .hero-services>.eyebrow{margin-bottom:6px}#assembly .services-all{margin-top:12px}}
@media(max-width:800px){
  .assembly-header{height:72px;padding-inline:24px}.assembly-header nav{display:none}.assembly-header .wordmark{font-size:25px}.assembly-header .header-cta{font-size:10px;min-height:36px;padding:10px 13px}
  #assembly .hero-copy{left:24px;right:24px;top:107px;display:block;z-index:6}#assembly h1{font-size:62px}
  #assembly .scene-wrap{inset:39% 0 16%}#assembly .scene-caption{left:24px;right:24px;bottom:91px;gap:12px}#assembly .scene-controls{left:24px;right:24px}
  #assembly .hero-services{display:none}#assembly .hero-copy>div{max-width:100%}
  #assembly .mobile-services{display:block;position:relative;max-width:380px;margin-top:22px;background:#101111f5;border-top:1px solid #ffffff40;border-bottom:1px solid #ffffff40}
  #assembly .mobile-services summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;gap:16px;list-style:none;font-size:12px;letter-spacing:.01em;cursor:pointer}
  #assembly .mobile-services summary>span{color:var(--red);font-size:22px}#assembly .mobile-services[open] summary>span{transform:rotate(45deg)}
  #assembly .mobile-services nav{padding:0 14px 12px;background:#101111;max-height:max(88px,calc(100svh - 330px));overflow-y:auto;overscroll-behavior:contain}
  #assembly .mobile-services nav a{min-height:44px;font-size:14px}#assembly .mobile-services[open]{box-shadow:0 20px 30px #0008}
}
@media(max-width:560px){
  #assembly .stage{min-height:min(620px,100svh)}#assembly,#assembly.is-static{min-height:620px}#assembly.is-live{height:280svh;min-height:1700px}
  #assembly .hero-copy{top:105px}#assembly h1{font-size:clamp(39px,12.8vw,69px);margin-top:15px}#assembly .hero-copy .eyebrow{font-size:9px;letter-spacing:1.2px}
  #assembly .mobile-services{margin-top:19px}#assembly .scene-wrap{inset:39% -2% 13%}
  #assembly .scene-caption{bottom:81px;flex-wrap:wrap;gap:8px 12px}#assembly .scene-caption p{font-size:12px}#assembly .concept-label{width:100%;margin-left:0;font-size:8px}
  #assembly .scene-controls{bottom:20px;padding-top:13px}#assembly .scroll-cue{font-size:10px;gap:8px;letter-spacing:0}#assembly .scene-controls button{font-size:9px;padding:9px 11px}
}
@media(max-height:480px){#assembly.is-static,#assembly.is-static .stage{height:680px;min-height:680px}#assembly .hero-copy{top:105px}#assembly.is-static .scene-wrap{top:43%;bottom:16%}#assembly .hero-copy h1{font-size:54px}}
@media(prefers-reduced-motion:reduce){#assembly.is-live{height:100svh;min-height:620px}#assembly .stage{position:relative}#assembly .progress-fill{transform:scaleX(1)}}
@media(forced-colors:active){#assembly .stage-light,#assembly .scene-wrap canvas{display:none}#assembly .scene-wrap .scene-fallback{visibility:visible}#assembly .scene-controls,#assembly .hero-services,#assembly .mobile-services,#assembly .mobile-services nav,#assembly .hero-services nav a,#assembly .mobile-services nav a{background:Canvas;color:CanvasText;border-color:CanvasText}}
