/* VORACE V25 — Motion WHILE scrolling, not just during chapter transitions.
   Compositor-only scroll transforms; no GPU-heavy animated blur/SVG path morph. */
.v25-section{isolation:isolate;position:relative}
.v25-scroll-sculpture{position:absolute;z-index:0;pointer-events:none;width:clamp(160px,25vw,390px);aspect-ratio:1;right:clamp(-76px,-3vw,-24px);top:clamp(100px,22%,320px);color:var(--v25-color,#e7cc93);opacity:.15;transform:translate3d(0,0,0);contain:layout paint;backface-visibility:hidden}
.v25-sculpture-svg{display:block;width:100%;height:100%;stroke:currentColor}
.v25-sculpture-orbit{position:absolute;inset:-8%;border:1px solid currentColor;border-radius:50%;opacity:.5;transform:rotate(-18deg) scaleX(.85)}
.v25-sculpture-orbit::before{content:'';position:absolute;inset:14%;border:1px dashed currentColor;border-radius:50%;opacity:.5}
.v25-sculpture-satellite{position:absolute;top:15%;right:12%;width:12px;height:12px;border-radius:50%;background:currentColor;box-shadow:0 0 0 7px color-mix(in srgb,currentColor 15%,transparent)}
/* Distinct sections, distinct motion objects. Visuals stay behind main content. */
#hero .v25-scroll-sculpture{top:17%;right:-5%;width:clamp(180px,29vw,410px)}
#projects .v25-scroll-sculpture{top:8%;right:1%}
#interlude .v25-scroll-sculpture{top:4%;right:5%}
#brand-story .v25-scroll-sculpture{top:14%;right:0%}
#method .v25-scroll-sculpture{top:10%;right:1%}
#testimonials .v25-scroll-sculpture{top:4%;right:1%}
#contact .v25-scroll-sculpture{top:14%;right:3%}
.v25-section>.wrap,.v25-section>.hero-layout,.v25-section>.contact-inner{position:relative;z-index:1}
/* Individual translate composes with pre-existing transform/hover keyframes. */
.v25-parallax-target{translate:var(--v25-ax,0px) var(--v25-ay,0px)}
/* The original traveller remains visible and is choreographed continuously between page transitions. */
.v24-traveller.v25-scroll-guided .v24-frame{will-change:transform;backface-visibility:hidden}
/* Correct hierarchy, no overlay capture or blocked content. */
.v25-section button,.v25-section a{position:relative}
@media(max-width:760px){
 .v25-scroll-sculpture{width:200px;right:-86px!important;opacity:.07!important;top:12%!important}
 .v25-sculpture-satellite{width:8px;height:8px;box-shadow:none}
 .v24-traveller.v25-scroll-guided .v24-frame{will-change:auto}
}
@media(prefers-reduced-motion:reduce){
 .v25-scroll-sculpture{display:none!important}
 .v25-parallax-target{translate:none!important}
 .v24-traveller.v25-scroll-guided{display:none!important}
}
/* Decorations may travel beyond the section edge, but must never widen the page. */
.v25-section{overflow-x:clip}
/* Seamless hand-off: V24 chapter cut finishes at the current scroll-linked position,
   rather than snapping back to the right-edge resting pose. */
.v24-traveller.v25-scroll-guided.v24-traveling .v24-frame{animation-name:v25TravellerMove!important}
@keyframes v25TravellerMove{
 0%{opacity:.58;transform:translate(-50%,-50%) scale(.34) rotate(-11deg)}
 18%{opacity:1;transform:translate(-50%,-50%) translate3d(-8vw,-2vh,0) scale(.52) rotate(-17deg)}
 35%{opacity:1;transform:translate(-50%,-50%) translate3d(var(--v24-dx),var(--v24-dy),0) scale(1.08) rotate(8deg)}
 57%{opacity:1;transform:translate(-50%,-50%) translate3d(var(--v24-dx),var(--v24-dy),0) scale(.98)}
 76%{opacity:.88;transform:translate(-50%,-50%) translate3d(-14vw,-2vh,0) scale(.53) rotate(-8deg)}
 100%{opacity:var(--v25-end-opacity,.58);transform:translate(-50%,-50%) translate3d(var(--v25-end-x,0px),var(--v25-end-y,0px),0) rotate(var(--v25-end-r,0deg)) scale(var(--v25-end-scale,.34))}
}
@media(max-width:760px){
 .v24-traveller.v25-scroll-guided.v24-traveling .v24-frame{animation-name:v25TravellerMobile!important}
 @keyframes v25TravellerMobile{
  0%{opacity:.45;transform:translate(-50%,-50%) scale(.30)}
  37%{opacity:.92;transform:translate(-50%,-50%) translate3d(var(--v24-dx),var(--v24-dy),0) scale(.75) rotate(9deg)}
  59%{opacity:.92;transform:translate(-50%,-50%) translate3d(var(--v24-dx),var(--v24-dy),0) scale(.78)}
  100%{opacity:var(--v25-end-opacity,.37);transform:translate(-50%,-50%) translate3d(var(--v25-end-x,0px),var(--v25-end-y,0px),0) rotate(var(--v25-end-r,0deg)) scale(var(--v25-end-scale,.30))}
 }
}
