/* Shared effect styles */
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}
.fx-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.fx-line>span{display:block;transform:translateY(105%);transition:transform 1s cubic-bezier(.16,1.04,.3,1)}
.fx-in .fx-line>span{transform:none}
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform 1s cubic-bezier(.16,1.04,.3,1)}
[data-reveal].fx-in{opacity:1;transform:none}
[data-img]{clip-path:inset(12% 8% 12% 8%);transition:clip-path 1.3s cubic-bezier(.7,0,.2,1)}
[data-img] img{transform:scale(1.18);transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
[data-img].fx-in{clip-path:inset(0 0 0 0)}[data-img].fx-in img{transform:scale(1)}
[data-magnet]{transition:transform .35s cubic-bezier(.2,1.4,.4,1);will-change:transform}
.fx-cursor{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;mix-blend-mode:difference}
.fx-cursor span{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:#fff;display:grid;place-items:center;font:600 13px/1 sans-serif;color:#000;transition:all .35s cubic-bezier(.2,1.2,.4,1);overflow:hidden;white-space:nowrap}
.fx-cursor.big span{left:-44px;top:-44px;width:88px;height:88px}
@media (prefers-reduced-motion:reduce){.fx-line>span,[data-reveal],[data-img],[data-img] img{transition:none!important;transform:none!important;opacity:1!important;clip-path:none!important}}
/* ---- text effects ---- */
.fx-w{display:inline-block;white-space:nowrap}
[data-chars] .fx-ch{display:inline-block;opacity:0;transform:translateY(.55em) rotate(8deg);transform-origin:0 100%;transition:transform .9s cubic-bezier(.16,1.2,.3,1),opacity .5s ease;transition-delay:calc(var(--i)*22ms)}
[data-chars].fx-in .fx-ch{opacity:1;transform:none}
[data-wave] .fx-ch{display:inline-block;transition:font-variation-settings .25s ease}
.fx-sw{transition:opacity .15s linear}
[data-skew]{transform-origin:0 50%;will-change:transform}
[data-mark]{background-image:linear-gradient(var(--mark,#FFC300),var(--mark,#FFC300));background-repeat:no-repeat;background-size:0% 100%;background-position:0 0;transition:background-size 1s cubic-bezier(.7,0,.2,1) .3s;padding:0 .08em}
[data-mark].fx-in{background-size:100% 100%}
[data-imgtext]{color:transparent!important;-webkit-background-clip:text;background-clip:text;background-size:cover;background-position:50% 30%;animation:imgpan 18s ease-in-out infinite alternate}
@keyframes imgpan{to{background-position:50% 70%}}
[data-type]{visibility:hidden}
@media (prefers-reduced-motion:reduce){[data-chars] .fx-ch{opacity:1!important;transform:none!important}[data-imgtext]{animation:none}}
