
:root{--m-ease:cubic-bezier(.22,1,.36,1);--m-dur:.8s}


.m-on [data-reveal]{opacity:0;transform:translate3d(0,28px,0);transition:opacity var(--m-dur) var(--m-ease),transform var(--m-dur) var(--m-ease);transition-delay:calc(var(--d,0)*90ms)}
.m-on [data-reveal=left]{transform:translate3d(-36px,0,0)}
.m-on [data-reveal=right]{transform:translate3d(36px,0,0)}
.m-on [data-reveal=zoom]{transform:scale(.96)}
.m-on [data-reveal].is-in{opacity:1;transform:none}
.m-on [data-reveal].is-done{transition:transform .35s var(--m-ease),opacity .35s;transition-delay:0s}


[data-parallax]{transform:translate3d(0,var(--py,0px),0);will-change:transform}
.m-zoom{animation:m-zoom 26s var(--m-ease) infinite alternate;will-change:transform}
@keyframes m-zoom{from{transform:scale(1.02)}to{transform:scale(1.1)}}


.lift,.btn{transition:transform .35s var(--m-ease)}
@media (hover:hover){.lift:hover,.m-on .lift.is-in:hover{transform:translate3d(0,-6px,0)}.btn:hover{transform:translate3d(0,-2px,0)}}
.btn:active{transform:scale(.98)}


[data-shrink]{position:fixed;top:0;left:0;right:0;z-index:70;transition:transform .45s var(--m-ease)}
[data-shrink]::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(10,22,46,.97);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 10px 30px rgba(4,8,18,.28)}
[data-shrink]::after{content:"";position:absolute;inset:0;z-index:-1;background:#0a162e;opacity:0;transition:opacity .45s var(--m-ease);pointer-events:none}
[data-shrink] .m-logo{transform-origin:left center;transition:transform .45s var(--m-ease)}
[data-shrink] .m-inner{transition:transform .45s var(--m-ease)}
[data-shrink].is-top{transform:none}
[data-shrink].is-top .m-inner,[data-shrink].is-top .m-logo{transform:none}
[data-shrink].is-shrunk:not(.is-top){transform:translate3d(0,calc(var(--shrink,18px)*-1),0)}
[data-shrink].is-shrunk:not(.is-top)::after{opacity:1}
[data-shrink].is-shrunk:not(.is-top) .m-inner{transform:translate3d(0,calc(var(--shrink,18px)/2),0)}
[data-shrink].is-shrunk:not(.is-top) .m-logo{transform:scale(.74)}


[data-count]{font-variant-numeric:tabular-nums}


[data-carousel]{position:relative;overflow:hidden;touch-action:pan-y}
.m-track{display:flex;transition:transform .7s var(--m-ease);will-change:transform}
.m-track.is-drag{transition:none}
.m-slide{flex:0 0 100%;min-width:0}
.m-slide>*{transition:opacity .7s var(--m-ease);opacity:.35}
.m-slide.is-on>*{opacity:1}
.m-dots{display:flex;gap:.5rem;justify-content:center;margin-top:1.4rem}
.m-dots button{width:28px;height:28px;padding:0;border:0;background:none;cursor:pointer;display:grid;place-items:center}
.m-dots button::before{content:"";width:8px;height:8px;border-radius:99px;background:currentColor;opacity:.3;transition:opacity .3s,transform .3s var(--m-ease)}
.m-dots button[aria-current=true]::before{opacity:1;transform:scale(1.5)}


@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .m-on [data-reveal]{opacity:1;transform:none}
  [data-parallax],.m-zoom{transform:none!important}
}
.m-static *,.m-static *::before,.m-static *::after{animation:none!important;transition:none!important}
.m-static [data-reveal]{opacity:1!important;transform:none!important}


.mobile-callbar{padding-bottom:calc(.7rem + env(safe-area-inset-bottom,0px))!important}
.m-on .mobile-callbar{animation:m-bar .6s var(--m-ease) .4s both}
@keyframes m-bar{from{transform:translate3d(0,100%,0)}to{transform:none}}

@media (max-width:719px){.m-on [data-reveal=left]:not(.is-in),.m-on [data-reveal=right]:not(.is-in){transform:translate3d(0,28px,0)}}


.m-lowend [data-parallax],.m-lowend .m-zoom{animation:none!important;transform:none!important;will-change:auto!important}
.m-lowend *,.m-lowend *::before,.m-lowend *::after{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}

/* gfx calm-motion 10/3 */
/* Chris 10/3: visitors are often stressed. Motion stays soft and calm: short fade-and-rise reveals only, no sideways slides or pops,
   slower hero drift, smaller hover lift. prefers-reduced-motion still turns everything off (rule above). */
:root{--m-dur:.9s;--m-ease:cubic-bezier(.25,.8,.3,1)}
.m-on [data-reveal],.m-on [data-reveal=left],.m-on [data-reveal=right],.m-on [data-reveal=zoom]{transform:translate3d(0,14px,0)}
.m-on [data-reveal].is-in{transform:none}
@keyframes m-zoom{from{transform:scale(1.02)}to{transform:scale(1.05)}}
.m-zoom{animation-duration:40s}
@media (hover:hover){.lift:hover,.m-on .lift.is-in:hover{transform:translate3d(0,-3px,0)}.btn:hover{transform:translate3d(0,-1px,0)}}
.hero-kicker i{animation-duration:4.5s!important}
@media (max-width:719px){.m-on [data-reveal=left]:not(.is-in),.m-on [data-reveal=right]:not(.is-in){transform:translate3d(0,14px,0)}}
@media (prefers-reduced-motion:reduce){.m-on [data-reveal],.m-on [data-reveal=left],.m-on [data-reveal=right],.m-on [data-reveal=zoom]{opacity:1!important;transform:none!important}}

/* r2k perf */
@media (max-width:1100px){.m-zoom{animation:none!important;transform:none!important;will-change:auto!important}}
