/* Motion layer: movement supports the content and never gates access to it. */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  transition:background-color .3s ease,box-shadow .3s ease;
}
.site-header.is-scrolled{
  background:rgba(8,18,32,.97);
  box-shadow:0 12px 30px rgba(4,13,24,.16);
  backdrop-filter:blur(14px);
}
.home-hero .hero-line{
  display:block;
  overflow:hidden;
  padding-bottom:.09em;
  margin-bottom:-.09em;
}
.home-hero .hero-line>span,.home-hero .hero-line>em{
  display:inline-block;
}
.home-hero .hero-content :is(.eyebrow,h1,.hero-lead,.hero-cycle,.hero-index){
  translate:0 var(--hero-text-shift,0px);
  opacity:var(--hero-text-opacity,1);
}
.hero-cycle{
  margin-top:46px;
  display:fl\65 x;
  align-items:center;
  gap:15px;
  font-size:11px;
  font-weight:850;
  letter-spacing:.16em;
  color:#a3b9c7;
}
.hero-cycle-window{
  position:relative;
  min-width:125px;
  height:32px;
  overflow:hidden;
  display:inline-block;
  color:#8cdded;
  font-size:18px;
  font-weight:750;
  letter-spacing:.035em;
}
.hero-cycle-word{
  position:absolute;
  left:0;
  top:50%;
  white-space:nowrap;
  opacity:0;
  transform:translate3d(0,55%,0);
  animation:hero-word-roll 15.5s cubic-bezier(.4,0,.2,1) infinite both;
  will-change:transform,opacity;
}
.hero-cycle-word:nth-child(1){animation-delay:-.8s}
.hero-cycle-word:nth-child(2){animation-delay:2.3s}
.hero-cycle-word:nth-child(3){animation-delay:5.4s}
.hero-cycle-word:nth-child(4){animation-delay:8.5s}
.hero-cycle-word:nth-child(5){animation-delay:11.6s}
.hero-cycle i{
  display:block;
  width:20px;
  height:1px;
  background:#8cdded;
  opacity:.75;
}
.home-hero .hero-index{margin-top:50px}

.partner-strip{overflow:hidden}
.partner-strip .wrap{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  align-items:center;
  gap:36px;
}
.partner-marquee{
  min-width:0;
  overflow:hidden;
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
.partner-track{
  display:fl\65 x;
  width:max-content;
  animation:partner-scroll 82s linear infinite;
}
.partner-names{
  display:fl\65 x;
  width:auto;
  fl\65 x:none;
  align-items:center;
  justify-content:fl\65 x-start;
  fl\65 x-wrap:nowrap;
  gap:48px;
  padding-right:48px;
}
.partner-names span{fl\65 x:none}

.kinetic-band{
  overflow:hidden;
  background:#0b1c2c;
  border-block:1px solid rgba(140,221,237,.22);
  padding:20px 0 25px;
}
.kinetic-track{
  display:fl\65 x;
  width:max-content;
  animation:kinetic-scroll 38s linear infinite;
}
.kinetic-track span{
  fl\65 x:none;
  white-space:nowrap;
  padding-right:.35em;
  font-size:clamp(3.7rem,8vw,8.5rem);
  line-height:1.03;
  letter-spacing:-.065em;
  font-weight:750;
  color:rgba(189,231,239,.18);
  -webkit-text-stroke:1px rgba(189,231,239,.45);
}
.kinetic-track b{
  color:#8cdded;
  -webkit-text-stroke:0;
  font-weight:400;
  padding-inline:.2em;
}
.solution-visual:before{animation:grid-drift 24s linear infinite}
.solution-visual[data-tone="sense"] .orbit-one{animation:orbit-breathe 5s ease-in-out infinite}
.solution-visual[data-tone="sense"] .orbit-two{animation:orbit-breathe 7s ease-in-out -2s infinite}
.solution-visual[data-tone="sense"] .signal-dot{animation:signal-breathe 3s ease-in-out infinite}
.solution-visual[data-tone="sense"]:after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:390px;
  height:390px;
  border-radius:50%;
  background:conic-gradient(from 0deg,transparent 0 300deg,rgba(140,221,237,.25) 338deg,transparent 360deg);
  transform:translate(-50%,-50%);
  animation:radar-turn 10s linear infinite;
  pointer-events:none;
  mix-blend-mode:screen;
}

.motion-ready .scroll-item{
  opacity:var(--reveal-alpha,1);
  translate:0 var(--reveal-y,0px);
}
.page-hero .wrap>*{
  translate:0 var(--page-shift,0px);
}

.industry-tile:after{
  content:"";
  position:absolute;
  inset:-40%;
  background:linear-gradient(110deg,transparent 42%,rgba(174,231,243,.1) 50%,transparent 58%);
  transform:translateX(-70%);
  transition:transform .75s cubic-bezier(.2,.7,.2,1);
  pointer-events:none;
}
.industry-tile:hover:after,.industry-tile:focus-visible:after{transform:translateX(70%)}

@keyframes partner-scroll{to{transform:translateX(-50%)}}
@keyframes hero-word-roll{
  0%{opacity:0;transform:translate3d(0,55%,0)}
  4%{opacity:1;transform:translate3d(0,-50%,0)}
  17%{opacity:1;transform:translate3d(0,-50%,0)}
  22%{opacity:0;transform:translate3d(0,-155%,0)}
  22.01%,100%{opacity:0;transform:translate3d(0,55%,0)}
}
@keyframes kinetic-scroll{to{transform:translateX(-50%)}}
@keyframes grid-drift{to{background-position:46px 46px}}
@keyframes radar-turn{to{transform:translate(-50%,-50%) rotate(360deg)}}
@keyframes orbit-breathe{
  0%,100%{opacity:.45;scale:1}
  50%{opacity:.9;scale:1.055}
}
@keyframes signal-breathe{
  0%,100%{box-shadow:0 0 0 14px rgba(140,221,237,.12),0 0 35px rgba(140,221,237,.45)}
  50%{box-shadow:0 0 0 23px rgba(140,221,237,.04),0 0 75px rgba(140,221,237,.8)}
}

@media(max-width:1000px){
  .partner-strip .wrap{display:block}
  .partner-marquee{margin-top:15px}
}
@media(max-width:760px){
  .home-hero .hero-index{margin-top:54px}
  .hero-cycle{margin-top:32px}
  .partner-names{gap:30px;padding-right:30px}
  .kinetic-band{padding-block:18px}
  .kinetic-track span{font-size:3.8rem}
  .solution-visual[data-tone="sense"]:after{width:260px;height:260px}
}
@media(prefers-reduced-motion:reduce){
  .home-hero .hero-content :is(.eyebrow,h1,.hero-lead,.hero-cycle,.hero-index),
  .page-hero .wrap>*{translate:none!important;opacity:1!important}
  .motion-ready .scroll-item{opacity:1!important;translate:none!important}
  .partner-track,.kinetic-track,.solution-visual:before,
  .solution-visual[data-tone="sense"] .orbit,.solution-visual[data-tone="sense"] .signal-dot,.solution-visual[data-tone="sense"]:after{
    animation:none!important;
  }
  .partner-track,.kinetic-track{transform:none!important}
  .hero-cycle-word{animation:none!important;will-change:auto}
  .hero-cycle-word:first-child{opacity:1;transform:translate3d(0,-50%,0)}
  .partner-names[aria-hidden="true"],.kinetic-track span:nth-child(2){display:none}
  .industry-tile:after{transition:none!important}
}
