/* Motion supports the engineering narrative; it never blocks reading or navigation. */
.hero{position:relative;isolation:isolate}
.hero>.shell{position:relative;z-index:1}
.hero-tech-surface{position:absolute;z-index:0;top:0;bottom:0;right:-5%;width:70%;pointer-events:none;overflow:hidden;opacity:.62;mask-image:linear-gradient(90deg,transparent,#000 25%)}
.hero-tech-surface svg{display:block;width:100%;height:100%}
.tech-route{fill:none;stroke:var(--brand-muted);stroke-width:.8;opacity:.26;vector-effect:non-scaling-stroke}
.tech-trace{fill:none;stroke:var(--brand-bronze);stroke-width:1.5;stroke-dasharray:5 95;stroke-dashoffset:100;opacity:.75;vector-effect:non-scaling-stroke;animation:technical-route 16s linear infinite;animation-play-state:paused}
.tech-trace:nth-of-type(2){animation-delay:-5s;animation-duration:20s}
.tech-trace:nth-of-type(3){animation-delay:-11s;animation-duration:24s}
.tech-node{fill:var(--brand-bronze);opacity:.5;animation:technical-node 9s ease-in-out infinite;animation-play-state:paused}
.tech-node:nth-of-type(2){animation-delay:-3s}
.tech-node:nth-of-type(3){animation-delay:-6s}
.motion-enabled .hero.motion-in-view .tech-trace,.motion-enabled .hero.motion-in-view .tech-node{animation-play-state:running}
.site-header:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand-bronze);transform:scaleX(var(--scroll-progress,0));transform-origin:left;pointer-events:none;opacity:.85}
.motion-ready .hero-copy>*{animation:hero-arrive .85s cubic-bezier(.2,.65,.25,1) both}
.motion-ready .hero-copy>:nth-child(2){animation-delay:.08s}
.motion-ready .hero-copy>:nth-child(3){animation-delay:.16s}
.motion-ready .hero-copy>:nth-child(4){animation-delay:.24s}
.motion-ready .hero-copy>:nth-child(5){animation-delay:.32s}
.motion-ready .hero h1{animation-name:title-arrive;animation-duration:1s}
.motion-ready .section-meta{position:relative}
.motion-ready .section-meta:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--brand-bronze);transform:scaleX(0);transform-origin:left;transition:transform 1.3s cubic-bezier(.2,.65,.25,1)}
.motion-ready .section-meta.motion-visible:after{transform:scaleX(1)}
.motion-reveal{transition:opacity .8s cubic-bezier(.2,.65,.25,1),transform .8s cubic-bezier(.2,.65,.25,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .motion-reveal:not(.motion-visible){opacity:0;transform:translate3d(0,24px,0)}
.motion-ready .motion-reveal.motion-visible{opacity:1;transform:translate3d(0,0,0)}
.motion-ready .portrait{transform:perspective(1100px) translate3d(0,var(--portrait-drift,0px),0) rotateX(var(--portrait-rx,0deg)) rotateY(var(--portrait-ry,0deg));transition:transform .65s cubic-bezier(.2,.65,.25,1)}
.portrait:before{transition:border-color .6s,transform .6s}
.motion-enabled .portrait:hover:before{border-color:var(--brand-bronze);transform:translate(-3px,-3px)}
.button{position:relative;overflow:hidden}
.button:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#f4f1eb1c 50%,transparent 75%);transform:translateX(-120%);pointer-events:none;transition:transform .7s cubic-bezier(.2,.65,.25,1)}
.button:hover:after{transform:translateX(120%)}
.service-node:before{content:'';position:absolute;left:0;top:0;width:100%;height:1px;background:var(--brand-bronze);transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.65,.25,1)}
.service-node:hover:before,.service-node:focus-visible:before{transform:scaleX(1)}
.node-link>span{display:inline-block;transition:transform .35s cubic-bezier(.2,.65,.25,1)}
.service-node:hover .node-link>span{transform:translate(3px,-3px)}
.service-panel{animation:service-panel-in .5s cubic-bezier(.2,.65,.25,1)}
.branch-flow{animation-duration:6s}
.method-steps>li:before{content:'';position:absolute;top:-1px;left:0;width:100%;height:2px;background:var(--brand-ivory);opacity:.4;transform-origin:left;animation:method-trace 9s cubic-bezier(.4,0,.2,1) infinite;animation-play-state:paused}
.method-steps>li:nth-child(2):before{animation-delay:-6s}
.method-steps>li:nth-child(3):before{animation-delay:-3s}
.motion-enabled .method-steps.motion-in-view>li:before{animation-play-state:running}
.engineering-tool summary,.experience-list summary{transition:color .3s,padding .35s}
.motion-inactive *,.motion-inactive *:before,.motion-inactive *:after{animation-play-state:paused!important}
.motion-reduced{scroll-behavior:auto}
.motion-reduced *,.motion-reduced *:before,.motion-reduced *:after{animation:none!important;transition:none!important}
.motion-reduced .motion-reveal{opacity:1!important;transform:none!important}
.motion-reduced .portrait{transform:none!important}
.motion-reduced .tech-trace,.motion-reduced .branch-flow,.motion-reduced .method-steps>li:before{display:none}
@keyframes technical-route{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes technical-node{0%,100%{opacity:.2}50%{opacity:.65}}
@keyframes hero-arrive{from{opacity:0;transform:translate3d(0,17px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes title-arrive{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translate3d(0,16px,0)}to{opacity:1;clip-path:inset(0 0 0 0);transform:translate3d(0,0,0)}}
@keyframes method-trace{0%,15%{transform:scaleX(0);opacity:0}25%{opacity:.5}65%{transform:scaleX(1);opacity:.45}85%,100%{transform:scaleX(1);opacity:0}}
@media(max-width:740px){.hero-tech-surface{right:-18%;width:115%;opacity:.42}.motion-ready .portrait{transform:none}}
@media(max-width:540px){.hero-tech-surface{mask-image:linear-gradient(180deg,transparent,#000 35%);opacity:.35}.tech-trace{animation-duration:24s}}
@media(prefers-reduced-motion:reduce){.motion-ready .hero-copy>*{animation:none}.motion-reveal{opacity:1!important;transform:none!important}.motion-ready .portrait{transform:none}.tech-trace,.branch-flow,.method-steps>li:before{display:none}.tech-node{animation:none}.button:after{display:none}}
