/* HS Motion: animations. Everything here sits behind prefers-reduced-motion: no-preference. Kill switch: option hs_motion_off 1 */
.hm-bg{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;contain:strict}
.hm-bg i{position:absolute;width:70vmax;height:70vmax;border-radius:50%;opacity:.5;will-change:transform}
.hm-bg i:nth-child(1){left:-25vmax;top:-30vmax;background:radial-gradient(circle,rgba(139,123,255,.16),transparent 62%)}
.hm-bg i:nth-child(2){right:-30vmax;top:20vh;background:radial-gradient(circle,rgba(124,242,176,.10),transparent 62%)}
.hm-bg i:nth-child(3){left:10vw;bottom:-45vmax;background:radial-gradient(circle,rgba(139,123,255,.10),transparent 62%)}
.hm-prog{position:fixed;left:0;top:0;height:2px;width:100%;z-index:100000;pointer-events:none;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#7cf2b0,#8b7bff)}
@media (prefers-reduced-motion:no-preference){
html{scroll-behavior:smooth}
.hm-bg i:nth-child(1){animation:hm-drift1 28s ease-in-out infinite alternate}
.hm-bg i:nth-child(2){animation:hm-drift2 34s ease-in-out infinite alternate}
.hm-bg i:nth-child(3){animation:hm-drift1 40s ease-in-out infinite alternate-reverse}
@keyframes hm-drift1{to{transform:translate3d(12vw,10vh,0) scale(1.1)}}
@keyframes hm-drift2{to{transform:translate3d(-14vw,-8vh,0) scale(.92)}}
/* scroll reveal: only elements motion.js marked (below the fold at load) are hidden */
.hm-js .hm-rv{opacity:0;transform:translate3d(0,22px,0);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--hm-d,0s),transform .7s cubic-bezier(.2,.7,.2,1) var(--hm-d,0s)}
.hm-js .hm-rv.hm-img{transform:scale(.97)}
.hm-js .hm-rv.hm-in{opacity:1;transform:none}
/* entrance for heroes and bands (pure CSS, runs from first paint) */
@keyframes hm-up{from{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:none}}
@keyframes hm-fade{from{opacity:0}to{opacity:1}}
.hm-band>*,.hs-hero-text>*,.hm-ahero-text>*{animation:hm-up .7s cubic-bezier(.2,.7,.2,1) both}
.hm-band>:nth-child(2),.hs-hero-text>:nth-child(2),.hm-ahero-text>:nth-child(2){animation-delay:.08s}
.hm-band>:nth-child(3),.hs-hero-text>:nth-child(3),.hm-ahero-text>:nth-child(3){animation-delay:.16s}
.hs-hero-text>:nth-child(4),.hm-ahero-text>:nth-child(4){animation-delay:.24s}
.hs-hero-text>:nth-child(5),.hm-ahero-text>:nth-child(5){animation-delay:.32s}
.hm-band>.hm-band-line{animation:hm-line 1.1s .2s cubic-bezier(.2,.7,.2,1) both,hm-shine 6s 1.3s linear infinite;background-size:200% 100%}
@keyframes hm-line{from{transform:scaleX(0);transform-origin:0 50%}to{transform:scaleX(1);transform-origin:0 50%}}
@keyframes hm-shine{to{background-position:-200% 0}}
.hm-caret{animation:hm-blink 1.05s steps(1) infinite}
@keyframes hm-blink{50%{opacity:0}}
.hs-hero h1 span,.hm-grad{background-size:200% 100%;animation:hm-grad 8s ease-in-out infinite alternate}
@keyframes hm-grad{to{background-position:100% 0}}
.hs-hero-img img,.hm-photo{animation:hm-float 6s ease-in-out infinite}
@keyframes hm-float{50%{transform:translate3d(0,-8px,0)}}
.hm-photo-wrap:before{animation:hm-spin 14s linear infinite}
@keyframes hm-spin{from{transform:translateX(-50%) rotate(0)}to{transform:translateX(-50%) rotate(360deg)}}
/* terminal: lines type in one after another */
.hm-term p{animation:hm-fade .01s both}
.hm-term p.c{animation:hm-type .9s steps(28,end) both}
@keyframes hm-type{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.hm-term p:nth-of-type(1){animation-delay:.3s}.hm-term p:nth-of-type(2){animation-delay:1.25s}
.hm-term p:nth-of-type(3){animation-delay:1.6s}.hm-term p:nth-of-type(4){animation-delay:2.55s}
.hm-term p:nth-of-type(5){animation-delay:2.9s}.hm-term p:nth-of-type(6){animation-delay:3.85s}
.hm-term p:nth-of-type(7){animation-delay:4.2s}
/* hover lift (pointer devices only); the services section is left alone */
@media (hover:hover){
:where(.hs-card,.hs-app,.hs-book,.hs-promo,.hs-post,.hs-ep,.hs-video,.hs-link,.hm-card,.hm-stat,.wp-block-post-template>li>.wp-block-group):not(#services *){transition:transform .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s,border-color .28s}
:where(.hs-card,.hs-app,.hs-book,.hs-promo,.hs-post,.hs-ep,.hs-video,.hs-link,.hm-proj,.hm-stat,.wp-block-post-template>li>.wp-block-group):not(#services *):hover{transform:translate3d(0,-4px,0);box-shadow:0 16px 34px rgba(0,0,0,.38),0 0 0 1px rgba(124,242,176,.22)}
:where(.hm-btn,.hm-chip,.wp-block-button__link):hover{transform:translate3d(0,-2px,0);box-shadow:0 8px 20px rgba(0,0,0,.3)}
.hm-btn.hm-primary:hover{box-shadow:0 10px 26px rgba(124,242,176,.25)}
}
}
