body.fbm-vue-active{--fbm-pointer-x:0px;--fbm-pointer-y:0px;--fbm-pointer-x-inverse:0px;--fbm-pointer-y-inverse:0px;--fbm-tilt-x:0deg;--fbm-tilt-y:0deg;--fbm-scroll-kick:0px;--fbm-scroll-energy:0;--fbm-hero:0;--fbm-hero-copy-y:0px;--fbm-hero-media-y:0px;--fbm-hero-title-y:0px;--fbm-hero-scale:1;--fbm-hero-copy-opacity:1}
#fb-motion-app{display:none}

/* One opening sequence: idea, character, work. */
@keyframes fbm-type-rise{0%{opacity:0;transform:translate3d(0,112%,0) skewY(3deg);filter:blur(8px)}55%{filter:blur(0)}100%{opacity:1;transform:none;filter:none}}
@keyframes fbm-soft-rise{0%{opacity:0;transform:translate3d(0,24px,0);filter:blur(7px)}100%{opacity:1;transform:none;filter:none}}
@keyframes fbm-wall-open{0%{opacity:0;clip-path:inset(13% 2% 13% 2% round 24px);filter:blur(12px) saturate(.55)}100%{opacity:1;clip-path:inset(0 round 0);filter:none}}
@keyframes fbm-signal-run{0%{opacity:0;transform:translate3d(-35vw,0,0) scaleX(.35)}12%{opacity:.85}72%{opacity:.62}100%{opacity:0;transform:translate3d(118vw,0,0) scaleX(1)}}
@keyframes fbm-dot-breathe{0%,100%{box-shadow:0 0 0 4px rgba(255,40,40,.07),0 0 16px rgba(255,40,40,.16)}50%{box-shadow:0 0 0 9px rgba(255,40,40,.04),0 0 30px rgba(255,40,40,.34)}}

@media(prefers-reduced-motion:no-preference){
  body.onon-home #onon-hero .onon-hero__title>span{animation:fbm-type-rise .95s cubic-bezier(.16,1,.3,1) both;overflow:visible}
  body.onon-home #onon-hero .onon-hero__title>span:nth-child(1){animation-delay:.08s}
  body.onon-home #onon-hero .onon-hero__title>span:nth-child(2){animation-delay:.2s}
  body.onon-home #onon-hero .onon-hero__description{animation:fbm-soft-rise .82s .4s cubic-bezier(.16,1,.3,1) both}
  body.onon-home #onon-hero .onon-hero__actions{animation:fbm-soft-rise .8s .52s cubic-bezier(.16,1,.3,1) both}
  body.onon-home #onon-hero .onon-services{animation:fbm-soft-rise .76s .64s cubic-bezier(.16,1,.3,1) both}
  body.onon-home #onon-hero .onon-reels-wall{animation:fbm-wall-open 1.12s .16s cubic-bezier(.16,1,.3,1) both}
}

/* The red signal is the recurring motion signature, not a separate widget. */
body.onon-home .fbm-hero-signal{position:absolute;left:0;right:0;top:31%;z-index:1;height:1px;overflow:hidden;pointer-events:none;opacity:.72}
body.onon-home .fbm-hero-signal i{position:absolute;left:0;top:0;width:clamp(180px,24vw,380px);height:1px;background:linear-gradient(90deg,transparent,#ff2828 58%,rgba(255,255,255,.8) 72%,transparent);transform-origin:right;animation:fbm-signal-run 6.8s 1.15s cubic-bezier(.2,.7,.2,1) 2 both}
body.onon-home .fbm-motion-section{position:relative}
body.onon-home .fbm-section-signal{position:absolute;left:clamp(20px,5.5vw,88px);top:0;z-index:8;width:min(270px,28vw);height:1px;pointer-events:none;background:rgba(255,40,40,.1)}
body.onon-home .fbm-section-signal::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#ff2828,rgba(255,40,40,.16));transform:scaleX(var(--fbm-section-progress,0));transform-origin:left;will-change:transform}
body.onon-home .fbm-section-signal::after{content:"";position:absolute;left:var(--fbm-section-progress-position,0%);top:50%;width:7px;height:7px;border-radius:50%;background:#ff2828;transform:translate(-50%,-50%);animation:fbm-dot-breathe 2.8s ease-in-out infinite}

/* Section reveals preserve the editorial composition and only animate its reading order. */
body.fbm-motion-enhanced .fbm-reveal{opacity:0;filter:blur(7px);transition:opacity .72s ease,filter .8s ease,transform .9s cubic-bezier(.16,1,.3,1);transition-delay:var(--fbm-reveal-delay,0ms);will-change:opacity,filter,transform}
body.fbm-motion-enhanced .fbm-reveal[data-fbm-reveal="up"]{transform:translate3d(0,30px,0)}
body.fbm-motion-enhanced .fbm-reveal[data-fbm-reveal="left"]{transform:translate3d(-30px,0,0)}
body.fbm-motion-enhanced .fbm-reveal[data-fbm-reveal="right"]{transform:translate3d(30px,0,0)}
body.fbm-motion-enhanced .fbm-reveal.is-fbm-revealed{opacity:1;filter:none;transform:none}

/* Scroll energy belongs to the work wall; the partner grid stays optically locked. */
body.onon-home.fbm-motion-enhanced .onon-reels-wall__column{transition:translate .14s linear;will-change:translate}
body.onon-home.fbm-motion-enhanced .onon-reels-wall__column:nth-child(odd){translate:0 var(--fbm-scroll-kick)}
body.onon-home.fbm-motion-enhanced .onon-reels-wall__column:nth-child(even){translate:0 calc(0px - var(--fbm-scroll-kick))}
.onon-reels-wall__card::after{content:"";position:absolute;inset:-35% -70%;z-index:4;pointer-events:none;background:linear-gradient(112deg,transparent 37%,rgba(255,255,255,.2) 49%,transparent 61%);transform:translateX(-58%) rotate(8deg);opacity:0;transition:transform .82s cubic-bezier(.16,1,.3,1),opacity .28s ease}
@media(hover:hover) and (pointer:fine){.onon-reels-wall__card:hover::after{opacity:1;transform:translateX(58%) rotate(8deg)}}

/* The partner wall resolves column by column once; repeated scrolling never shifts its geometry. */
@media(prefers-reduced-motion:no-preference){
  body.onon-home.fbm-motion-enhanced .onon-references-v9__field .onon-references-v9__stream{translate:none;opacity:.28;filter:blur(6px);transform:translate3d(0,22px,0);transition:opacity .7s ease,filter .82s ease,transform .9s cubic-bezier(.16,1,.3,1)}
  body.onon-home.fbm-motion-enhanced .onon-references-v9__field.is-fbm-revealed .onon-references-v9__stream{opacity:1;filter:none;transform:none}
  body.onon-home.fbm-motion-enhanced .onon-references-v9__field.is-fbm-revealed .onon-references-v9__stream:nth-child(2){transition-delay:.07s}
  body.onon-home.fbm-motion-enhanced .onon-references-v9__field.is-fbm-revealed .onon-references-v9__stream:nth-child(3){transition-delay:.14s}
  body.onon-home.fbm-motion-enhanced .onon-references-v9__field.is-fbm-revealed .onon-references-v9__stream:nth-child(4){transition-delay:.21s}
  body.onon-home.fbm-motion-enhanced .onon-references-v9__field.is-fbm-revealed .onon-references-v9__stream:nth-child(5){transition-delay:.28s}
}

@media (min-width:768px) and (prefers-reduced-motion:no-preference){
  body.onon-home.fbm-vue-active #onon-hero .onon-hero__copy{translate:var(--fbm-pointer-x-inverse) calc(var(--fbm-hero-copy-y) + var(--fbm-pointer-y-inverse));opacity:var(--fbm-hero-copy-opacity);will-change:translate,opacity}
  body.onon-home.fbm-vue-active #onon-hero .onon-hero__title{translate:0 var(--fbm-hero-title-y);will-change:translate}
  body.onon-home.fbm-vue-active #onon-hero .onon-reels-wall{translate:var(--fbm-pointer-x) calc(var(--fbm-hero-media-y) + var(--fbm-pointer-y));scale:var(--fbm-hero-scale);transform:perspective(1400px) rotateX(var(--fbm-tilt-x)) rotateY(var(--fbm-tilt-y));transform-origin:52% 48%;will-change:translate,scale,transform}
  body.onon-home.fbm-vue-active #onon-hero .onon-hero__ambient{translate:var(--fbm-pointer-x-inverse) var(--fbm-pointer-y-inverse);will-change:translate}
  body.onon-home.fbm-vue-active .onon-about-v4__motion{translate:0 var(--fbm-section-lift);will-change:translate}
  body.onon-home.fbm-vue-active .fbm-focus-item{translate:0 var(--fbm-item-lift)}
  body.fbm-page-web .fbw4>.ow5-hero .ow5-gallery{translate:var(--fbm-pointer-x) calc(var(--fbm-hero-media-y) + var(--fbm-pointer-y));will-change:translate}
  body.fbm-page-web .fbw4>.ow5-hero .ow5-copy{translate:var(--fbm-pointer-x-inverse) calc(var(--fbm-hero-copy-y) + var(--fbm-pointer-y-inverse));opacity:var(--fbm-hero-copy-opacity);will-change:translate,opacity}
  body.fbm-page-web .fbw4>.ow5-hero .ow5-vignette{translate:var(--fbm-pointer-x-inverse) var(--fbm-pointer-y-inverse);will-change:translate}
  body.fbm-page-web .fbm-focus-item{translate:0 var(--fbm-item-lift)}
}

body.fbm-page-web :is(.fbw4-principles article,.fbw4-system__steps li,.fbw4-scope article,.fbw4-process article){position:relative}

@media(prefers-reduced-motion:no-preference){
  body.fbm-page-web :is(.fbw4-principles article,.fbw4-system__steps li,.fbw4-scope article){background-repeat:no-repeat;background-size:0 100%;transition:background-size .78s cubic-bezier(.16,1,.3,1),padding .35s cubic-bezier(.16,1,.3,1)}
  body.fbm-page-web .fbw4-principles article{background-image:linear-gradient(90deg,rgba(255,40,40,.07),rgba(255,40,40,0) 62%)}
  body.fbm-page-web .fbw4-system__steps li{background-image:linear-gradient(90deg,rgba(255,40,40,.09),rgba(255,40,40,0) 58%)}
  body.fbm-page-web .fbw4-scope article{background-image:linear-gradient(90deg,rgba(48,5,5,.13),rgba(48,5,5,0) 62%)}
  body.fbm-page-web :is(.fbw4-principles article,.fbw4-system__steps li,.fbw4-scope article).is-fbm-focused{background-size:100% 100%}
  body.fbm-page-web :is(.fbw4-principles article,.fbw4-system__steps li,.fbw4-scope article) h3{transition:color .35s ease,transform .62s cubic-bezier(.16,1,.3,1)}
  body.fbm-page-web :is(.fbw4-principles article,.fbw4-system__steps li,.fbw4-scope article).is-fbm-focused h3{transform:translateX(6px)}
  body.fbm-page-web .fbw4-principles article.is-fbm-focused>i{border-color:#ff2828;color:#ff2828;transform:translateX(-4px) rotate(-8deg)}
  body.fbm-page-web .fbw4-system__steps li.is-fbm-focused>i{color:#ff2828;transform:translateX(6px)}
  body.fbm-page-web .fbw4-process article.is-fbm-focused:before{transform:scaleX(1)}
}

body.fbm-page-web .fbw4-process__route{position:absolute;inset:0;z-index:2;width:100%;height:100%;overflow:visible;pointer-events:none}
body.fbm-page-web .fbw4-process__route :is(.fbw4-process__route-base,.fbw4-process__route-line){fill:none;vector-effect:non-scaling-stroke}
body.fbm-page-web .fbw4-process__route-base{stroke:rgba(17,17,17,.2);stroke-width:1}
body.fbm-page-web .fbw4-process__route-line{stroke:#ff2828;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 5px rgba(255,40,40,.24))}
body.fbm-page-web .fbw4-process__route-points circle{fill:#f2f0ec;stroke:rgba(17,17,17,.32);stroke-width:1.25;vector-effect:non-scaling-stroke}
body.fbm-page-web .fbw4-process__route-dot{fill:#ff2828;stroke:#f2f0ec;stroke-width:3;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 7px rgba(255,40,40,.45));transition:opacity .18s ease}
body.fbm-page-web .fbw4-process__track>article{z-index:1}

@media(max-width:767px){body.fbm-page-web .fbw4-process__route-base{stroke:rgba(17,17,17,.16)}body.fbm-page-web .fbw4-process__route-line{stroke-width:1.7}body.fbm-page-web .fbw4-process__route-dot{stroke-width:2.5}}

@media(max-width:767px){body.fbm-motion-enhanced .fbm-reveal[data-fbm-reveal]{transform:translate3d(0,16px,0)}body.onon-home .fbm-section-signal{left:20px;width:118px}body.onon-home .fbm-hero-signal{top:27%;opacity:.48}}
@media(prefers-reduced-motion:reduce){body.fbm-vue-active :is(.onon-hero__copy,.onon-hero__title,.onon-reels-wall,.onon-hero__ambient,.onon-about-v4__motion,.ow5-gallery,.ow5-copy,.ow5-vignette,.fbm-focus-item,.onon-reels-wall__column,.onon-references-v9__stream){translate:none!important;scale:1!important;opacity:1!important;filter:none!important;transform:none!important}body.fbm-motion-enhanced .fbm-reveal{opacity:1!important;filter:none!important;transform:none!important;transition:none!important}.fbm-hero-signal,.fbm-section-signal{display:none!important}.onon-reels-wall__card::after{display:none!important}.fbw4-process__route-line{stroke-dashoffset:0!important}.fbw4-process__route-dot{display:none!important}}
