/* Research Commerce Visual Effects Engine 1.0 — user controlled, no external dependency.
   All effects are opt-in; without JavaScript entrance elements remain readable. */
.rct-fx-entrance{--rct-fx-duration:650ms;--rct-fx-delay:0ms;--rct-fx-timing:cubic-bezier(.2,.7,.2,1);min-width:0}
.rct-fx-ease-linear{--rct-fx-timing:linear}.rct-fx-ease-spring{--rct-fx-timing:cubic-bezier(.2,1.45,.4,1)}
.rct-fx-ease-ease_in{--rct-fx-timing:ease-in}.rct-fx-ease-ease_out{--rct-fx-timing:ease-out}
.rct-fx-js .rct-fx-entrance:not(.rct-inview){opacity:0;visibility:hidden}
.rct-fx-js .rct-fx-entrance.rct-inview{visibility:visible;animation-duration:var(--rct-fx-duration);animation-delay:var(--rct-fx-delay);animation-fill-mode:both;animation-timing-function:var(--rct-fx-timing)}
.rct-fx-fade.rct-inview{animation-name:rctfx-fade}.rct-fx-rise.rct-inview{animation-name:rctfx-rise}
.rct-fx-zoom.rct-inview{animation-name:rctfx-zoom}.rct-fx-slide_left.rct-inview{animation-name:rctfx-left}
.rct-fx-slide_right.rct-inview{animation-name:rctfx-right}.rct-fx-blur.rct-inview{animation-name:rctfx-blur}
.rct-fx-flip.rct-inview{animation-name:rctfx-flip}.rct-fx-rotate.rct-inview{animation-name:rctfx-rotate}
@keyframes rctfx-fade{from{opacity:0}to{opacity:1}}
@keyframes rctfx-rise{from{opacity:0;transform:translate3d(0,32px,0)}to{opacity:1;transform:none}}
@keyframes rctfx-zoom{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
@keyframes rctfx-left{from{opacity:0;transform:translate3d(-36px,0,0)}to{opacity:1;transform:none}}
@keyframes rctfx-right{from{opacity:0;transform:translate3d(36px,0,0)}to{opacity:1;transform:none}}
@keyframes rctfx-blur{from{opacity:0;filter:blur(12px)}to{opacity:1;filter:blur(0)}}
@keyframes rctfx-flip{from{opacity:0;transform:perspective(800px) rotateY(35deg)}to{opacity:1;transform:none}}
@keyframes rctfx-rotate{from{opacity:0;transform:rotate(-8deg) scale(.94)}to{opacity:1;transform:none}}
/* Text engine: drawing, sweep, masked reveal and individually staggered words. */
.rct-el-animated{--rct-fx-duration:850ms;--rct-stagger:100ms;display:inline-block;position:relative;max-width:100%}
.rct-el-animated.rct-textfx-underline{padding-bottom:.15em}
.rct-el-animated.rct-textfx-underline:after{content:"";height:.12em;position:absolute;bottom:0;left:0;right:0;background:var(--rct-primary,#3467ef);transform-origin:left center;transform:scaleX(1)}
.rct-fx-js .rct-el-animated.rct-textfx-underline:not(.rct-inview):after{transform:scaleX(0)}
.rct-el-animated.rct-textfx-underline.rct-inview:after{animation:rctfx-underline var(--rct-fx-duration) ease-out both}
@keyframes rctfx-underline{to{transform:scaleX(1)}}
.rct-el-animated.rct-textfx-gradient{background:linear-gradient(110deg,var(--rct-primary,#3467ef),#16a3b7,#7952c7,var(--rct-primary,#3467ef));background-size:300% auto;color:transparent;background-clip:text;-webkit-background-clip:text}
.rct-el-animated.rct-textfx-gradient.rct-inview{animation:rctfx-sweep calc(var(--rct-fx-duration)*4) linear infinite}
@keyframes rctfx-sweep{to{background-position:300% center}}
.rct-fx-js .rct-el-animated[data-rct-trigger=scroll]:not(.rct-inview){visibility:hidden}
.rct-el-animated.rct-textfx-reveal.rct-inview{animation:rctfx-mask var(--rct-fx-duration) ease-out both}
@keyframes rctfx-mask{from{clip-path:inset(0 100% 0 0);opacity:.3}to{clip-path:inset(0);opacity:1}}
.rct-el-animated.rct-textfx-fade.rct-inview{animation:rctfx-fade var(--rct-fx-duration) both}
.rct-el-animated.rct-textfx-rise.rct-inview{animation:rctfx-rise var(--rct-fx-duration) both}
.rct-el-animated.rct-textfx-zoom.rct-inview{animation:rctfx-zoom var(--rct-fx-duration) both}
.rct-effect-word{display:inline-block;white-space:pre;transform-origin:center bottom}
.rct-fx-js .rct-textfx-stagger:not(.rct-inview) .rct-effect-word{opacity:0}
.rct-textfx-stagger.rct-inview .rct-effect-word{animation:rctfx-rise var(--rct-fx-duration) cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--rct-word-index)*var(--rct-stagger))}
/* Scroll-linked panel has static fallback; transforms are only set by the shared RAF. */
.rct-fx-parallax{position:relative;overflow:hidden;isolation:isolate;background-image:none!important}
.rct-fx-parallax .rct-parallax-background{position:absolute;z-index:-2;inset:-15%;background-position:center;background-repeat:no-repeat;background-size:cover;transform:translate3d(var(--rct-parallax-x,0px),var(--rct-parallax-y,0px),0);pointer-events:none}
.rct-fx-parallax .rct-parallax-content{position:relative;z-index:2}
.rct-fx-parallax .rct-parallax-layer{position:absolute;z-index:-1;pointer-events:none;border-radius:50%;border:1px solid rgba(255,255,255,.19);width:30%;height:80%;top:10%;left:5%;transform:translate3d(calc(var(--rct-parallax-x,0px)*-.25),calc(var(--rct-parallax-y,0px)*-.25),0)}
.rct-fx-parallax .rct-parallax-layer:nth-last-child(1){left:auto;right:-8%;width:20%;opacity:.55}
.rct-fx-parallax-fixed .rct-parallax-background{background-attachment:fixed}
/* Layered SVG/floating geometry: different physical paths, independent phase offsets. */
.rct-el-svgfloat,.rct-el-floating{--rct-float-duration:8s;--rct-float-amount:45px}
.rct-el-svgfloat svg{animation:none;flex-shrink:0;color:var(--rct-primary,#3467ef)}
.rct-el-svgfloat:not(.rct-float-still) svg,.rct-el-floating:not(.rct-float-still)>span{animation-duration:var(--rct-float-duration);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}
.rct-float-float svg,.rct-float-float>span{animation-name:rctfx-float}
.rct-float-orbit svg,.rct-float-orbit>span{animation-name:rctfx-orbit}
.rct-float-drift svg,.rct-float-drift>span{animation-name:rctfx-drift}
.rct-float-figure8 svg,.rct-float-figure8>span{animation-name:rctfx-figure8}
.rct-el-floating>span{animation-delay:calc(var(--rct-float-index,0)*-1.7s);--rct-float-index:0}
.rct-el-floating>span:nth-child(3){left:48%;right:auto;top:12%;width:75px;height:75px;border-radius:38%}
.rct-el-floating>span:nth-child(4){left:20%;right:auto;top:50%;width:50px;height:50px;border-radius:50%}
.rct-el-floating>span:nth-child(5){left:75%;right:auto;top:75%;width:42px;height:42px}
.rct-el-floating>:is(h2,p){position:relative;z-index:1}
@keyframes rctfx-float{to{transform:translateY(calc(0px - var(--rct-float-amount))) rotate(8deg)}}
@keyframes rctfx-orbit{0%{transform:translate(0,0) rotate(0)}50%{transform:translate(var(--rct-float-amount),calc(0px - var(--rct-float-amount))) rotate(100deg)}100%{transform:translate(0,0) rotate(360deg)}}
@keyframes rctfx-drift{to{transform:translateX(var(--rct-float-amount))}}
@keyframes rctfx-figure8{0%{transform:translate(-12px,0)}25%{transform:translate(0,-18px)}50%{transform:translate(12px,0)}75%{transform:translate(0,18px)}100%{transform:translate(-12px,0)}}
/* Shape divider: multiple clipped layers, flipped and individually sized per device. */
.rct-el-shape{height:var(--rct-shape-hd,42px);background:transparent!important;position:relative;overflow:hidden;clip-path:none!important;border-radius:0!important;pointer-events:none}
.rct-el-shape>span{position:absolute;inset:0;background:#edf3ff;opacity:1;transform:scaleX(var(--rct-shape-x,1)) scaleY(var(--rct-shape-y,1))}
.rct-el-shape>span:nth-child(2){opacity:.35;transform:translateY(16%) scaleX(var(--rct-shape-x,1)) scaleY(var(--rct-shape-y,1))}
.rct-el-shape>span:nth-child(3){opacity:.2;transform:translateY(28%) scaleX(var(--rct-shape-x,1)) scaleY(var(--rct-shape-y,1))}
.rct-shape-flip-x{--rct-shape-x:-1}.rct-shape-flip-y{--rct-shape-y:-1}
.rct-shape-wave>span{clip-path:ellipse(65% 100% at 50% 0%)}.rct-shape-slope>span{clip-path:polygon(0 0,100% 0,100% 20%,0 100%)}
.rct-shape-curve>span{border-radius:0 0 50% 50%}
.rct-shape-zigzag>span{clip-path:polygon(0 0,100% 0,100% 85%,90% 50%,80% 85%,70% 50%,60% 85%,50% 50%,40% 85%,30% 50%,20% 85%,10% 50%,0 85%)}
.rct-shape-triangle>span{clip-path:polygon(0 0,100% 0,50% 100%)}
.rct-shape-steps>span{clip-path:polygon(0 0,100% 0,100% 100%,80% 100%,80% 70%,60% 70%,60% 50%,40% 50%,40% 70%,20% 70%,20% 100%,0 100%)}
.rct-shape-arch>span{clip-path:ellipse(50% 95% at 50% 0%)}
.rct-shape-chevron>span{clip-path:polygon(0 0,100% 0,100% 55%,50% 100%,0 55%)}
/* Image interactions keep alt text and links; CSS hover/focus fallbacks support keyboard. */
.rct-fx-image{--rct-hover-duration:320ms;transition:transform var(--rct-hover-duration) ease,box-shadow var(--rct-hover-duration) ease;position:relative;isolation:isolate;overflow:hidden}
.rct-fx-image img{transition:transform var(--rct-hover-duration) cubic-bezier(.18,.8,.2,1),filter var(--rct-hover-duration) ease}
.rct-image-hover-zoom:is(:hover,:focus-within) img{transform:scale(1.08)}
.rct-image-hover-lift:is(:hover,:focus-within){transform:translateY(-8px);box-shadow:0 16px 40px rgba(10,30,70,.2)}
.rct-image-hover-overlay:after{content:"";position:absolute;inset:0;background:var(--rct-primary,#3467ef);opacity:0;pointer-events:none;mix-blend-mode:multiply;transition:opacity var(--rct-hover-duration)}
.rct-image-hover-overlay:is(:hover,:focus-within):after{opacity:.25}
.rct-image-hover-reveal figcaption,.rct-image-hover-reveal>h3{transition:transform var(--rct-hover-duration),opacity var(--rct-hover-duration)}
.rct-image-hover-reveal:not(:hover):not(:focus-within) figcaption{transform:translateY(65%);opacity:.1}
.rct-image-hover-tilt{transform:perspective(900px) rotateX(var(--rct-tilt-x,0deg)) rotateY(var(--rct-tilt-y,0deg));transform-style:preserve-3d}
@media(max-width:991px){.rct-el-shape{height:var(--rct-shape-ht,42px)}}
@media(max-width:767px){.rct-el-shape{height:var(--rct-shape-hm,42px)}.rct-fx-parallax .rct-parallax-background{transform:none!important;background-attachment:scroll!important}.rct-fx-image{transform:none!important}}
@media(prefers-reduced-motion:reduce){
 .rct-fx-entrance,.rct-el-animated,.rct-el-animated:after,.rct-effect-word,.rct-fx-image,.rct-fx-image img,.rct-fx-parallax .rct-parallax-background,.rct-el-svgfloat svg,.rct-el-floating>span{animation:none!important;transition:none!important;transform:none!important;opacity:1!important;filter:none!important;visibility:visible!important;clip-path:none!important}
 .rct-el-animated:after{transform:scaleX(1)!important}.rct-fx-image{transform:none!important}
}
/* Progressive, keyboard-operable interaction controls. */
.rct-el-hotspot-point{z-index:3}.rct-el-hotspot-point[aria-expanded=true]{z-index:5}
.rct-el-hotspot-popover{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%);width:max-content;max-width:min(260px,70vw);padding:.6rem .8rem;background:#162b4a;color:#fff;font:500 .85rem/1.45 system-ui;border-radius:9px;box-shadow:0 10px 30px #0a173e50;white-space:normal;text-align:left;pointer-events:none}
.rct-el-hotspot-popover[hidden]{display:none!important}
.rct-el-carousel-dots{grid-column:1/-1;display:flex;justify-content:center;gap:8px;margin-top:8px}
.rct-el-carousel .rct-el-carousel-dots button{width:12px;height:12px;padding:0;border:1px solid var(--rct-primary,#3467ef);background:transparent;cursor:pointer}
.rct-el-carousel .rct-el-carousel-dots button[aria-pressed=true]{background:var(--rct-primary,#3467ef)}
.rct-el-carousel .rct-el-carousel-dots button:focus-visible,.rct-el-hotspot-point:focus-visible{outline:3px solid var(--rct-primary,#3467ef);outline-offset:3px}

.rct-shape-color-brand>span{background:var(--rct-primary,#3467ef)}.rct-shape-color-navy>span{background:#070b3a}.rct-shape-color-teal>span{background:#087e88}
