/* FOM Group site — shared motion. Entrance (load), scroll reveals, hover, live loops. */
html,body{overflow-x:clip}
@keyframes fomUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
@keyframes fomDown{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
@keyframes fomLeft{from{opacity:0;transform:translateX(-48px)}to{opacity:1;transform:none}}
@keyframes fomRight{from{opacity:0;transform:translateX(48px)}to{opacity:1;transform:none}}
@keyframes fomZoom{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
@keyframes fomSwapA{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@keyframes fomSwapB{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@keyframes fomFloat{0%,100%{translate:0 0}50%{translate:0 -10px}}
@keyframes fomWipe{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes fomDraw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes fomGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes fomPulse{0%{box-shadow:0 0 0 0 rgba(238,56,49,.55)}70%,100%{box-shadow:0 0 0 12px rgba(238,56,49,0)}}
@keyframes fomPulseG{0%{box-shadow:0 0 0 0 rgba(47,190,113,.6)}70%,100%{box-shadow:0 0 0 8px rgba(47,190,113,0)}}
@keyframes fomFlow{from{background-position:0 0}to{background-position:0 24px}}
@keyframes fomBlink{50%{opacity:0}}
@keyframes fomKen{from{transform:scale(1.12)}to{transform:scale(1)}}
@keyframes fomFill{from{width:0}}

.m-up{animation:fomUp .9s cubic-bezier(.16,1,.3,1) both}
.m-down{animation:fomDown .6s cubic-bezier(.16,1,.3,1) both}
.m-zoom{animation:fomZoom 1s cubic-bezier(.16,1,.3,1) both}
.m-wipe{transform-origin:top;animation:fomWipe 1.1s cubic-bezier(.7,0,.2,1) both}
.m-draw{transform-origin:left;animation:fomDraw 1.2s cubic-bezier(.7,0,.2,1) both}
.m-ken{animation:fomKen 2.6s cubic-bezier(.16,1,.3,1) both}
.m-fill{animation:fomFill 1.8s cubic-bezier(.16,1,.3,1) .5s both}
.k-up>*{animation:fomUp .8s cubic-bezier(.16,1,.3,1) both}
.k-right>*{animation:fomRight .7s cubic-bezier(.16,1,.3,1) both}
.k-grow>*{transform-origin:bottom;animation:fomGrow 1.2s cubic-bezier(.16,1,.3,1) both}
.stg>*:nth-child(1){animation-delay:calc(var(--d0,0s) + .05s)}
.stg>*:nth-child(2){animation-delay:calc(var(--d0,0s) + .14s)}
.stg>*:nth-child(3){animation-delay:calc(var(--d0,0s) + .23s)}
.stg>*:nth-child(4){animation-delay:calc(var(--d0,0s) + .32s)}
.stg>*:nth-child(5){animation-delay:calc(var(--d0,0s) + .41s)}
.stg>*:nth-child(6){animation-delay:calc(var(--d0,0s) + .5s)}
.stg>*:nth-child(7){animation-delay:calc(var(--d0,0s) + .59s)}
.stg>*:nth-child(8){animation-delay:calc(var(--d0,0s) + .68s)}
.stg>*:nth-child(9){animation-delay:calc(var(--d0,0s) + .77s)}
.stg>*:nth-child(10){animation-delay:calc(var(--d0,0s) + .86s)}
.stg>*:nth-child(11){animation-delay:calc(var(--d0,0s) + .95s)}
.stg>*:nth-child(12){animation-delay:calc(var(--d0,0s) + 1.04s)}
.d2{animation-delay:.2s}.d3{animation-delay:.3s}.d4{animation-delay:.4s}.d6{animation-delay:.6s}.d8{animation-delay:.8s}

.float-a{animation:fomLeft 1s cubic-bezier(.16,1,.3,1) .5s both,fomFloat 7s ease-in-out 1.5s infinite}
.float-b{animation:fomRight 1s cubic-bezier(.16,1,.3,1) .7s both,fomFloat 8s ease-in-out 1.7s infinite}
.float-c{animation:fomUp 1s cubic-bezier(.16,1,.3,1) .9s both,fomFloat 6.5s ease-in-out 1.9s infinite}
.float-d{animation:fomZoom 1s cubic-bezier(.16,1,.3,1) 1.1s both,fomFloat 9s ease-in-out 2.1s infinite}
.bob{animation:fomFloat 6s ease-in-out infinite}
.pulse{animation:fomPulse 1.8s ease-out infinite}
.pulse-g{animation:fomPulseG 1.6s ease-out infinite}
.caret::after{content:"";display:inline-block;width:2px;height:1em;margin-left:2px;vertical-align:-2px;background:#EE3831;animation:fomBlink 1s steps(1) infinite}
.flowline{background:none!important;background-image:linear-gradient(#F89691 50%,transparent 0)!important;background-size:100% 12px!important;animation:fomFlow .8s linear infinite}

.lift,.lift-k>*{transition:translate .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,border-color .35s}
.lift:hover,.lift-k>*:hover{translate:0 -6px;box-shadow:var(--shadow-lg);border-color:var(--red-200)!important}
.ico{transition:scale .35s cubic-bezier(.16,1,.3,1),rotate .35s,background-color .3s,color .3s}
.lift:hover .ico{scale:1.1;rotate:-6deg;background:#EE3831!important;color:#fff!important}
.nudge{transition:translate .3s cubic-bezier(.16,1,.3,1)}
.lift:hover .nudge,a:hover>.nudge{translate:5px 0}
.team figure img{transition:scale .6s cubic-bezier(.16,1,.3,1),box-shadow .6s}
.team figure:hover img{scale:1.03;box-shadow:var(--shadow-lg)}
tbody tr{transition:background-color .2s}
tbody tr:hover{background:#FEF2F1}

@supports (animation-timeline: view()){
.rv{animation:fomUp linear both;animation-timeline:view();animation-range:entry 0% cover 30%}
.rv-l{animation:fomLeft linear both;animation-timeline:view();animation-range:entry 0% cover 35%}
.rv-r{animation:fomRight linear both;animation-timeline:view();animation-range:entry 0% cover 35%}
.rv-z{animation:fomZoom linear both;animation-timeline:view();animation-range:entry 0% cover 35%}
.rv-draw{transform-origin:left;animation:fomDraw linear both;animation-timeline:view();animation-range:entry 0% cover 45%}
.rv-fill{animation:fomFill linear both;animation-timeline:view();animation-range:entry 20% cover 55%}
.rv-k>*{animation:fomUp linear both;animation-timeline:view();animation-range:entry 0% cover 30%}
.rv-k>*:nth-child(2){animation-range:entry 5% cover 35%}
.rv-k>*:nth-child(3){animation-range:entry 10% cover 40%}
.rv-k>*:nth-child(4){animation-range:entry 15% cover 45%}
.rv-k>*:nth-child(5){animation-range:entry 20% cover 50%}
.rv-k>*:nth-child(6){animation-range:entry 25% cover 55%}
.rv-grow>*{transform-origin:bottom;animation:fomGrow linear both;animation-timeline:view();animation-range:entry 10% cover 50%}
.rv-grow>*:nth-child(even){animation-range:entry 15% cover 55%}
}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
