/* OKHBOT V2.6.15 | Whole-homepage scroll choreography.
   No replacement of approved visuals, backgrounds, text or service interactions. */
.ok265-home .ok264-hero-visual{
  transform:translate3d(0,var(--ok215-hero-lift,0px),0) scale(var(--ok215-hero-scale,1));
  transform-origin:50% 60%;
  will-change:transform;
}
.ok265-home .ok264-hero-copy{
  transform:translate3d(0,var(--ok215-hero-copy-y,0px),0);
  will-change:transform;
}
.ok265-home .ok264-hero-visual .ok264-floating-platform{
  animation-duration:6s;
}
.ok265-home .ok264-floating-ticket{
  animation-duration:5.5s;
}
/* Add living depth BEHIND the intro words without adding a new box or page background. */
.ok265-home .ok272-about{isolation:isolate}
.ok265-home .ok272-about .ok272-about-layout{
  position:relative;
  isolation:isolate;
}
.ok265-home .ok272-about .ok272-about-layout::before,
.ok265-home .ok272-about .ok272-about-layout::after{
  content:"";
  position:absolute;
  border:0;
  border-radius:50%;
  z-index:-1;
  pointer-events:none;
  background:radial-gradient(circle,rgba(116,99,238,.09),transparent 70%);
  transform:translate3d(0,calc((1 - var(--ok215-about-progress,1)) * 26px),0);
  animation:ok215-breathe 11s ease-in-out infinite alternate;
}
.ok265-home .ok272-about .ok272-about-layout::before{width:49%;aspect-ratio:1;right:1%;top:-52%}
.ok265-home .ok272-about .ok272-about-layout::after{width:43%;aspect-ratio:1;left:2%;bottom:-45%;background:radial-gradient(circle,rgba(72,179,164,.07),transparent 72%);animation-delay:-4s}
.ok265-home .ok272-about .ok272-about-description{
  transform-origin:50% 65%;
  will-change:transform,opacity,filter;
}
/* Title, cards and artwork follow scroll position in both directions. */
.ok265-home .ok264-services-heading{
  transform:translate3d(0,calc((1 - var(--ok215-enter,1)) * 60px),0);
  opacity:calc(.38 + var(--ok215-enter,1) * .62);
  will-change:transform,opacity;
}
.ok265-home .ok264-service-card{
  will-change:transform,opacity;
  transform-origin:50% 85%;
  transition:box-shadow .32s ease, border-color .32s ease;
}
.ok265-home .ok264-service-card:hover{
  box-shadow:0 30px 52px rgba(45,40,111,.16);
}
.ok265-home .ok265-services .ok265-3d-art img{
  transform:translate3d(0,var(--ok269-parallax,0px),0);
  transition:filter .25s ease,transform .09s linear;
}
/* Step choreography: let the scrubbed progress line and active step feel substantial. */
.ok265-home .ok264-step-line{height:4px;border-radius:10px}
.ok265-home .ok264-step-fill{box-shadow:0 0 14px rgba(103,86,232,.40)}
.ok265-home .ok264-step-number.is-active{transform:translateY(-3px) scale(1.15);box-shadow:0 12px 26px rgba(100,80,219,.23)}
.ok265-home .ok264-step-card{transition:opacity .26s,transform .3s cubic-bezier(.2,.75,.2,1),background .28s,border-color .28s}
.ok265-home .ok264-step-card.is-active{transform:translateY(-12px) scale(1.018);box-shadow:0 17px 36px rgba(94,74,199,.10)}
/* Footer rises into view seamlessly, with no separated color strip. */
body.ok264-home-active .site>.footer .footer-grid,
body.ok264-home-active .site>.footer .foot-bottom{
  opacity:calc(.48 + var(--ok215-footer-progress,1) * .52);
  transform:translate3d(0,calc((1 - var(--ok215-footer-progress,1)) * 48px),0);
  will-change:transform,opacity;
}
@keyframes ok215-breathe{
  0%{opacity:.45;translate:-12px 8px;scale:1}
  50%{opacity:.85;translate:8px -12px;scale:1.10}
  100%{opacity:.50;translate:21px 5px;scale:1.04}
}
@media(max-width:780px){
 .ok265-home .ok264-hero-visual{transform:translate3d(0,var(--ok215-hero-lift,0px),0) scale(var(--ok215-hero-scale,1))}
 .ok265-home .ok264-step-card.is-active{transform:translateY(-6px) scale(1.008)}
 .ok265-home .ok272-about .ok272-about-layout::before{top:-15%}
}
@media(prefers-reduced-motion:reduce){
 .ok265-home .ok264-hero-copy,.ok265-home .ok264-hero-visual,
 .ok265-home .ok272-about .ok272-about-description,
 .ok265-home .ok264-services-heading,.ok265-home .ok264-service-card,
 body.ok264-home-active .site>.footer .footer-grid,
 body.ok264-home-active .site>.footer .foot-bottom{transform:none!important;filter:none!important;opacity:1!important}
 .ok265-home .ok272-about .ok272-about-layout::before,
 .ok265-home .ok272-about .ok272-about-layout::after{animation:none!important}
}
