/* SpeedoOne HR — shared premium motion (assets/hr-motion.js adds the classes) */
.hm-rv{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity .9s cubic-bezier(.22,.61,.36,1),transform 1s cubic-bezier(.22,.61,.36,1),filter .9s ease}
.hm-rv.hm-on{opacity:1;transform:none;filter:none}
.hm-rv.hm-l{transform:translateX(-36px)}.hm-rv.hm-r{transform:translateX(36px)}
.hm-rv.hm-l.hm-on,.hm-rv.hm-r.hm-on{transform:none}
/* headings: rise from a soft mask (no clipping of letters) */
.hm-h{opacity:0;transform:translateY(0.6em);filter:blur(4px);transition:opacity .9s ease,transform 1s cubic-bezier(.22,.61,.36,1),filter .9s ease}
.hm-h.hm-on{opacity:1;transform:none;filter:none}
/* kicker labels slide + fade */
.hm-k{opacity:0;letter-spacing:.4em;transition:opacity .8s ease,letter-spacing 1s cubic-bezier(.22,.61,.36,1)}
.hm-k.hm-on{opacity:1;letter-spacing:.16em}
/* staggered children */
.hm-st > *{opacity:0;transform:translateY(24px) scale(.98);transition:opacity .7s ease,transform .8s cubic-bezier(.22,.61,.36,1)}
.hm-st.hm-on > *{opacity:1;transform:none}
.hm-st.hm-on > *:nth-child(2){transition-delay:.09s}.hm-st.hm-on > *:nth-child(3){transition-delay:.18s}.hm-st.hm-on > *:nth-child(4){transition-delay:.27s}
.hm-st.hm-on > *:nth-child(5){transition-delay:.36s}.hm-st.hm-on > *:nth-child(6){transition-delay:.45s}.hm-st.hm-on > *:nth-child(7){transition-delay:.54s}.hm-st.hm-on > *:nth-child(8){transition-delay:.63s}
/* image frames: rise + tilt settle */
.hm-img{opacity:0;transform:perspective(1600px) rotateX(10deg) translateY(50px) scale(.96);transform-origin:50% 100%;transition:opacity 1s ease,transform 1.3s cubic-bezier(.22,.61,.36,1)}
.hm-img.hm-on{opacity:1;transform:none}
/* scroll progress bar */
.hm-prog{position:fixed;left:0;top:0;z-index:9999;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#0E9F8E,#3971B3,#8B5CF6);pointer-events:none}
/* soft parallax blobs on section bands */
.hm-band{position:relative;overflow:hidden}
.hm-band::after{content:"";position:absolute;z-index:0;width:36vw;height:36vw;right:-10vw;top:-12vw;border-radius:50%;background:radial-gradient(circle,rgba(57,113,179,.08),transparent 65%);transform:translateY(var(--hm-py,0));pointer-events:none}
.hm-band > *{position:relative;z-index:1}
/* button sheen */
.hm-btn{position:relative;overflow:hidden}
.hm-btn::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);animation:hmSheen 4.5s ease-in-out 2s infinite}
@keyframes hmSheen{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
@media (prefers-reduced-motion:reduce){
  .hm-rv,.hm-h,.hm-k,.hm-st > *,.hm-img{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;letter-spacing:inherit!important;transition:none!important}
  .hm-btn::after,.hm-prog{display:none}
}
